gpt4 book ai didi

c++ - 模板在被另一个模块使用时如何工作

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:40 26 4
gpt4 key购买 nike

例如,当创建一个通用链表(用 List<T> 表示)时,我总是被告知如果我在某处使用 List<int>和其他地方 List<short>那么实际上编译器会生成 List 的两个不同实现, 一个使用 int另一个使用 short .这对我来说很有意义,有点提醒我如何 SGLIB在 C 中工作。

但是我不明白在使用不同的编译模块时这个过程是如何工作的。我的意思是,如果我用 List<T> 创建一个库,生成了哪些代码,因为不可能知道代码将如何被使用? List<char> 的代码编译肯定会与 List<int> 的代码截然不同,那么这里发生了什么?

最佳答案

答案很简单:模板库通常不编译,而仅作为 header 提供。这是模板最大的缺点之一,计划在下一个带有模块系统的标准中解决。

关于c++ - 模板在被另一个模块使用时如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258260/

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