Не могу понять почему лезут варнинги при компиляции программы с использованием STL.
Работает все четко, но раз варнинги есть наверное не все ОК ?
CUrl.cpp
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(574) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(828) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(1064) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(479) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(471) : while compiling class-template member function 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::put(_Elem)'
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(561) : see reference to class template instantiation 'std::basic_ostream<_Elem,_Traits>' being compiled
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(479) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(471) : while compiling class-template member function 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::put(_Elem)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(922) : see reference to class template instantiation 'std::basic_ostream<_Elem,_Traits>' being compiled
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(99) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(89) : while compiling class-template member function 'bool std::basic_istream<_Elem,_Traits>::_Ipfx(bool)'
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(816) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(99) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(89) : while compiling class-template member function 'bool std::basic_istream<_Elem,_Traits>::_Ipfx(bool)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\istream(1054) : see reference to class template instantiation 'std::basic_istream<_Elem,_Traits>' being compiled
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(1453) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(1444) : while compiling class-template member function 'void std::basic_string<_Elem,_Traits,_Ax>::_Copy(std::basic_string<_Elem,_Traits,_Ax>::size_type,std::basic_string<_Elem,_Traits,_Ax>::size_type)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\stdexcept(39) : see reference to class template instantiation 'std::basic_string<_Elem,_Traits,_Ax>' being compiled
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(1453) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(1444) : while compiling class-template member function 'void std::basic_string<_Elem,_Traits,_Ax>::_Copy(std::basic_string<_Elem,_Traits,_Ax>::size_type,std::basic_string<_Elem,_Traits,_Ax>::size_type)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::_DebugHeapAllocator<char>
]
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xdebug(99) : see reference to class template instantiation 'std::basic_string<_Elem,_Traits,_Ax>' being compiled
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::_DebugHeapAllocator<char>
]
Creating library...
Performing Post-Build Event...
Сделай как советуют ("Specify /EHsc"). У тебя, очевидно, выключена поддержка исключений в опциях компилятора. Все работает только потому, что исключения внутри STL не происходят (везучий ты), а как возникнет исключение -- тут и трындец всему придет.
Re[2]: почему лезут варнинги при использовании STL ?
Здравствуйте, quodum, Вы писали:
Q>Здравствуйте, Socket, Вы писали: Q>[] S>>Code Generation -> Enable C++ Exception = No Q>На это он и жалуется. /EHsc -- комманд-лайновый аналог этой опции.
тоесть страшного ничего нет?
я специально отключаю C++ Exp, т.к. я в каждой своей функции использую макросы, которые показывают инфу о вылете,
т.е. так сказать наоборот пусть вылетает, чтобы знать где в моей процедуре баг.
Здравствуйте, Socket, Вы писали:
S>тоесть страшного ничего нет?
Ну как же ничего страшного? А если все-таки вылетит исключение? Код-то их бросающий в STL есть, даже если у Вас его нет. Я не знаю, как поступит в такой ситуации MSVC, но вариантов у него немного:
* убить программу с помощью abort()
* продолжить исполнение после throw, наплевав на логику кода (и скорее всего навернуться по access violation непонятно где)
S>я специально отключаю C++ Exp, т.к. я в каждой своей функции использую макросы, которые показывают инфу о вылете, S>т.е. так сказать наоборот пусть вылетает, чтобы знать где в моей процедуре баг.
Непонятно, почему для этого надо отключать поддержку исключений. Непонятно, как Ваши макросы узнают о вылете при отключенных исключениях.
Re[5]: почему лезут варнинги при использовании STL ?
Здравствуйте, Socket, Вы писали:
S>тоесть страшного ничего нет? S>я специально отключаю C++ Exp, т.к. я в каждой своей функции использую макросы, которые показывают инфу о вылете, S>т.е. так сказать наоборот пусть вылетает, чтобы знать где в моей процедуре баг.
Исключение — это не признак бага в программе, а скорее, признак мусора во внешнем мире (во входных данных). Особенно это касается ввода-вывода.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[5]: почему лезут варнинги при использовании STL ?
От:
Аноним
Дата:
02.08.07 19:37
Оценка:
Здравствуйте, Socket, Вы писали:
S>тоесть страшного ничего нет? S>я специально отключаю C++ Exp, т.к. я в каждой своей функции использую макросы, которые показывают инфу о вылете, S>т.е. так сказать наоборот пусть вылетает, чтобы знать где в моей процедуре баг.
Ты наверняка пишешь в одиночку..
У тебя странное понимание для чего нужны исключения.