gpt4 book ai didi

c++ - 非模板类中模板函数的内存模型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:39 24 4
gpt4 key购买 nike

假设我有:

template <typename T>
class A
{
//Do something with T
};

我知道编译器会生成一个 class A<T>对于每个不同的 T在代码中定义。

如果我有:

class B
{
template <typename T>
void f() { /* Do something with T */ }
};

class B 是否只有一个定义?但是 f() 的多个重载对于每个不同的 T它叫什么?

最佳答案

是的,每次实例化f<T>会有 f() 的定义由编译器生成。
根据编译器的不同,f()可以通过内联进行优化,或者它可以在代码段中获取那么多空间。

但是,我很少遇到这种在非模板类中有一个非静态模板成员函数(没有任何参数!)的设计。

关于c++ - 非模板类中模板函数的内存模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618728/

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