Here's another test that throws an error at compile time. It looks like the compiler doesn't like the using N as the dimension of the array. I thought using variables as array dimensions was not allowed in C++?
gcc -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align -I/home/mbrown/stdcxx/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/home/mbrown/stdcxx/include -I/home/mbrown/stdcxx-gcc-3.4.4-11s/include -I/home/mbrown/stdcxx/../rwtest -I/home/mbrown/stdcxx/../rwtest/include -I/home/mbrown/stdcxx/tests/include -L/home/mbrown/stdcxx-gcc-3.4.4-11s/rwtest -lrwtest11s -L/home/mbrown/stdcxx-gcc-3.4.4-11s/lib -lstd11s /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp /home/mbrown/stdcxx-gcc-3.4.4-11s/lib/libstd11s.a /home/mbrown/stdcxx-gcc-3.4.4-11s/rwtest/librwtest11s.a -lsupc++ -lcatgets -liconv -lm -o 27.istream.fmat.arith /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp: In function `const std::locale make_locale(const CharT*, const LocaleData&)': /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:67: error: ISO C++ forbids variable-size array `chars' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:68: error: ISO C++ forbids variable-size array `masks' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp: In function `const std::locale make_locale(const CharT*, const LocaleData&) [with CharT = char]': /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:179: instantiated from `const std::locale make_locale(const CharT*, const Traits*, const LocaleData&) [with CharT = char, Traits = std::char_traits<char>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:309: instantiated from `void test_extractor(CharT*, Traits*, ArithmeticType*, const char*, const char*, const char*, int, const char*, const char*, size_t, const LocaleData&, int, int, int, int, int, int, int, ArithmeticType, ArithmeticType) [with CharT = char, Traits = std::char_traits<char>, ArithmeticType = bool]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:699: instantiated from `void test_bool(CharT*, Traits*, const char*, const char*) [with CharT = char, Traits = std::char_traits<char>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:1245: instantiated from `void test_extractor(CharT*, Traits*, const char*, const char*) [with CharT = char, Traits = std::char_traits<char>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:1310: instantiated from here /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:67: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:67: error: storage size of `chars' isn't constant /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:68: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:68: error: storage size of `masks' isn't constant /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:71: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:71: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:75: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:75: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:76: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:76: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:83: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:83: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:88: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:88: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp: In function `const std::locale make_locale(const CharT*, const LocaleData&) [with CharT = wchar_t]': /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:179: instantiated from `const std::locale make_locale(const CharT*, const Traits*, const LocaleData&) [with CharT = wchar_t, Traits = std::char_traits<wchar_t>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:309: instantiated from `void test_extractor(CharT*, Traits*, ArithmeticType*, const char*, const char*, const char*, int, const char*, const char*, size_t, const LocaleData&, int, int, int, int, int, int, int, ArithmeticType, ArithmeticType) [with CharT = wchar_t, Traits = std::char_traits<wchar_t>, ArithmeticType = bool]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:699: instantiated from `void test_bool(CharT*, Traits*, const char*, const char*) [with CharT = wchar_t, Traits = std::char_traits<wchar_t>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:1245: instantiated from `void test_extractor(CharT*, Traits*, const char*, const char*) [with CharT = wchar_t, Traits = std::char_traits<wchar_t>]' /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:1322: instantiated from here /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:67: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:67: error: storage size of `chars' isn't constant /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:68: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:68: error: storage size of `masks' isn't constant /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:71: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:71: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:75: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:75: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:76: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:76: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:83: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:83: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:88: error: ISO C++ forbids variable-size array /home/mbrown/stdcxx/tests/iostream/27.istream.fmat.arith.cpp:88: error: ISO C++ forbids variable-size array make: *** [27.istream.fmat.arith] Error 1 -- Mark