Когда я запускаю этот простой код в Ubuntu (Ubuntu 13.10, 64 бита, g ++ 4.8.1):
#include <iostream>
#include <typeinfo>
#include <string>
using namespace std;
int main(void)
{
const type_info &ti_trait = typeid(char_traits<char>::char_type);
cout << "Traits character type name : " <<
ti_trait.name() << endl;
return 0;
}
все в порядке, но в Windows (Windows 8 64 бит, mingw, g ++ 4.8.1) я получил «Программа перестала работать» (компиляция работает нормально, и -Wall не выдает предупреждения).
Тот же код, скомпилированный и выполненный в Visual Studio, работает правильно.
Любая идея?
Решение состоит в том, чтобы скомпилировать с -static-libgcc -static-libstdc++
(смотрите здесь для объяснения). Благодаря @sftrabbit.
Других решений пока нет …