Compilation LINUX GCC 4.6.1 : Erreur STL
Bonjour,
Je reprend un projet au sein de ma boite qui est pour ainsi dire un ..... de programme de ..... .
Bref j'en viens au but :
Lors de la compilation du programme (crée sous GCC 2.95 ) un tas de message d'erreur apparait.(Je montrerais ces messages par la suite)
J'ai donc créer un petit bout de code qui fait appel à cette libraire et en voici les premières dizaines d'erreur retournée lors de la compilation :
Main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include <iostream>
#include <vector>
using namespace std;
template <typename T>
class MyClass
{
public:
static std::vector <T> MyVector;
};
int main()
{
MyClass<int>::MyVector = {17};
cout<<"Sa marche"<<endl;
return 0;
} |
Commande de compilation => g++ -c main.cpp -o prog
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| In file included from /usr/include/c++/4.6/stl_string_fwd.h:20:0,
from /usr/include/c++/4.6/string:18,
from /usr/include/c++/4.6/bits/locale_classes.h:42,
from /usr/include/c++/4.6/bits/ios_base.h:43,
from /usr/include/c++/4.6/ios:43,
from /usr/include/c++/4.6/ostream:40,
from /usr/include/c++/4.6/iostream:40,
from main.cpp:1:
/usr/include/c++/4.6/char_traits.h:115:27: erreur: an explicit specialization must be preceded by 'template <>'
/usr/include/c++/4.6/char_traits.h:140:27: erreur: an explicit specialization must be preceded by 'template <>'
In file included from /usr/include/c++/4.6/string:22:0,
from /usr/include/c++/4.6/bits/locale_classes.h:42,
from /usr/include/c++/4.6/bits/ios_base.h:43,
from /usr/include/c++/4.6/ios:43,
from /usr/include/c++/4.6/ostream:40,
from /usr/include/c++/4.6/iostream:40,
from main.cpp:1:
/usr/include/c++/4.6/stdexcept:26:55: erreur: expected class-name before '{' token
In file included from /usr/include/c++/4.6/stl_algobase.h:45:0,
from /usr/include/c++/4.6/memory:18,
from /usr/include/c++/4.6/string:24,
from /usr/include/c++/4.6/bits/locale_classes.h:42,
from /usr/include/c++/4.6/bits/ios_base.h:43,
from /usr/include/c++/4.6/ios:43,
from /usr/include/c++/4.6/ostream:40,
from /usr/include/c++/4.6/iostream:40,
from main.cpp:1:
/usr/include/c++/4.6/type_traits.h:96:28: erreur: an explicit specialization must be preceded by 'template <>'
/usr/include/c++/4.6/stl_iterator.h:852:3: erreur: 'istream' does not name a type
/usr/include/c++/4.6/stl_iterator.h:868:27: erreur: expected ')' before '&' token
/usr/include/c++/4.6/stl_iterator.h: In member function 'void istream_iterator<_Tp, _Dist>::_M_read()': |
J'en passe et des meilleurs, d'après mes recherches il existe un problème de compatibilité entre la STL et GCC (le compilateur) depuis la version 4.5.