我正在尝试使用 g++ 4.4 进行编译并链接一个使用 STL 的简单程序。我正在尝试使用-fno-implicit-templates来做到这一点,因此所有模板都必须显式实例化。
我不明白为什么这段代码有效:
#include <map>
//template class std::map<char,char>;
template class std::_Rb_tree<char, std::pair <char const, char>,
std::_Select1st<std::pair<char const, char> >,
std::less<char>, std::allocator<std::pair<char const, char> > >;
int main() {
std::map <char,char> table;
return 0;
}
我希望该程序需要该行:template class std::map<char,char>;
,但是该行不会使程序链接。std::_Rb_tree line
是需要的。为什么?
在此先感谢,任何提示将不胜感激。