Ошибка при использовании STL в приложении на базе WTL
Создаю в среде VC++ 6.0 при помощи WTL AppWizard проект.
Проект работает.
Но стоит подключить, например, vector.h из библиотеки STL, так сразу тьма ошибок:
Цитата:
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(61) : error C2226: syntax error : unexpected type 'T'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(61) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(61) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2143: syntax error : missing ';' before '{'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2447: missing function header (old-style formal list?)
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(72) : error C2954: template definitions cannot nest
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : warning C4002: too many actual parameters for macro 'min'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2226: syntax error : unexpected type 'T'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : warning C4002: too many actual parameters for macro 'max'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2143: syntax error : missing ';' before '{'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2447: missing function header (old-style formal list?)
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(82) : error C2954: template definitions cannot nest
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(61) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(61) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2143: syntax error : missing ';' before '{'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(66) : error C2447: missing function header (old-style formal list?)
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(72) : error C2954: template definitions cannot nest
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : warning C4002: too many actual parameters for macro 'min'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2226: syntax error : unexpected type 'T'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(73) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : warning C4002: too many actual parameters for macro 'max'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2062: type 'const int' unexpected
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2143: syntax error : missing ';' before '{'
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(78) : error C2447: missing function header (old-style formal list?)
c:\program files\microsoft visual studio\vc98\include\stl\algobase.h(82) : error C2954: template definitions cannot nest
Причем интересный момент, если подключать хидер самым первым, то ошибок не возникает. Однако при попытки определить:
Код:
vector<int> A;
получаем ошибочки:
Цитата:
error C2065: 'vector' : undeclared identifier
error C2062: type 'int' unexpected
error C2062: type 'int' unexpected
В обычном консольном приложении усё у норме.
Может кто-нибудь знает в чем прикол?
мож. в этом проблема.
using namespace std; - пишешь?
Цитата:
попробуй подключить <vector>, а не <vector.h>,
мож. в этом проблема.
мож. в этом проблема.
Работает :)
Спасибо.
Цитата:
using namespace std; - пишешь?
Не помогает.
Но почему же тогда STL с сайта SGI не работает?
И вопрос все равно остается, ведь в консольном приложении работает :)
а под 32bit - <vector>, namespaces и всякая дребедень :)) поэтому может не работать.
to Pastor
а вот
using namespace std;
писать не хорошо, нах. тогда неймспейсы придумали?
надо через нго обращаться, а то возникнет конфликт имен и всё - правь весь код.