Коллеги! Будьте добры, скомпилируйте пример своей версией gcc и расскажите о наличии или отсутствии проблемы (т.е. есть ли две строки "Main globaler destructor") Более подробно на http://www.rsdn.ru/Forum/Message.aspx?mid=1487421 #include <iostream> template <class T> class MainGlobaler { public: MainGlobaler(char *) {std::cout << "Main globaler constructor" << std::endl;} virtual ~MainGlobaler() {std::cout << "Main globaler destructor" << std::endl;} }; static MainGlobaler<std::string> MgArr[] = { MainGlobaler<std::string>("Klava"), MainGlobaler<std::string>("Slava") }; int main(int argc, char **argv) { std::cout << "Top of main" << std::endl; }