gpt4 book ai didi

c++ - 目标文件中的显式模板代码生成

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

<分区>

如果我在单独的编译单元中有一个模板函数(它从 CUDA C 编译器 NVCC 生成一个后缀为 .o 的目标文件)

假设我们有定义(实现)

template<typename T> 
void foo(T a){
// something
}

为了在目标文件中生成显式代码以便能够从另一个编译单元链接到它,我需要显式实例化此模板(对于我需要的所有模板参数):

template void foo<double>(double a);
template void foo<float>(double a);

这样做会在目标文件中生成实际代码。

做其他事情,例如:

template<> void foo<double>(double a);
template<> void foo<float>(float a);

不在目标文件中生成代码,因为这是一个完整的专用模板声明。这是正确的吗?

还有

void foo(double a);
void foo(float a);

不生成代码,因为这将是一个重载声明?这是正确的吗?

现在的问题是,使编译器在单独的编译单元中为模板函数或类生成代码的一般语法是什么?

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