我在Linux上使用g ++和C ++泛型编程。我没有使用" extern模板"关键词现在,因为我尝试了,有时它最终得到"未定义的引用"。我知道这可能是我的错,但我不会冒这个风险。我的问题是,除了减少编译时间,这个关键词还有助于减少可执行文件的大小吗?我很遗憾可执行文件在同一个可执行文件中的不同模块中有多个相同的对象......
答案 0 :(得分:1)
不,它不会减少最终的可执行文件大小。 “extern模板”阻止了翻译单元中的隐式实例化。没有“extern模板”的隐式实例化 相同的模板可能会在多个翻译单元中发生,但链接器仍将删除多余的副本,只留下一个。