
Boost.Test library test basic_cstring_test.cpp fails to compile on many (all?) platforms using GNU libstdc++. Follows reproducer and the results of compiling it with GNU 4.3.0 and 3.4.6. Replacing 'utf::basic_cstring<CharT>::size_type' with 'std::size_t' in libs/test/test/basic_cstring_test.cpp makes the problem go away. Is it a known problem in GNU libstdc++? Does the fact that the implementation does not have to provide specializations of basic_string<> other than for 'char' and 'wchar_t' makes x.cpp below illegal? Thanks, Boris x.cpp ----- #include <string> template<typename T> void foo(T) { std::basic_string<T>::size_type i = 1; } bash-2.03$ g++ -dumpversion ; g++ -c x.cpp 4.3.0 x.cpp: In function 'void foo(T)': x.cpp:4: error: expected `;' before 'i' bash-2.03$ bash-3.00$ g++ -dumpversion ; g++ -c x.cpp 3.4.6 x.cpp: In function `void foo(T)': x.cpp:4: error: expected `;' before "i" bash-3.00$