gpt4 book ai didi

c++ - std::map 和 -fno-implicit-templates

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:24 24 4
gpt4 key购买 nike

我正在尝试使用 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 是必需的。为什么?

提前致谢,如有任何提示,我们将不胜感激。

最佳答案

map 在其实现中使用红黑树,因此您必须显式实例化 map 实例化所需的树类型。这看起来不像是一个特别有用的编译器标志,恕我直言。

关于c++ - std::map 和 -fno-implicit-templates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com