Шаблон C ++ работает нормально для GCC, но показывает ошибку времени компиляции в компиляторе LLVM-GCC - PullRequest
0 голосов
/ 12 октября 2011
typedef char TCHAR;

template <class T> class MyTemplateString
{

};
template <class T> class MyList
{

};
typedef MyTemplateString<TCHAR>         MyString;

MyList<MyString> outlist;// here it's showing compile time error

Ошибка:

Неявное создание неопределенного шаблона MyList <MyTemplateString<char>>

Прекрасно работает только с компилятором GCC, но не работает в LLVM-GCCкомпилятор.

1 Ответ

3 голосов
/ 12 октября 2011

Код, приведенный выше, прекрасно компилируется здесь без каких-либо ошибок или предупреждений, используя g ++ и llvm-g ++:

$ g++ -Wall -c template.cpp 

$ llvm-g++ -Wall -c template.cpp 

Информация о версии:

$ g++ -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~123/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

$ llvm-g++ -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/llvmgcc42/llvmgcc42-2335.9~9/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --enable-llvm=/var/tmp/llvmgcc42/llvmgcc42-2335.9~9/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.9)

Я думаю, что ваш реальная проблема лежит в другом месте.

...