gpt4 book ai didi

模板化类的模板化构造函数的 C++ 显式模板特化

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

我有一个类

template <class T>
struct A{
template <class U>
A(U u);
};

我想为这样的声明写一个明确的特化

A<int>::A(float);

在下面的测试代码中,如果我注释掉特化,它会用g++编译。否则,它说我的模板参数数量错误:

#include <iostream>

template <class T>
struct A{
template <class U>
A(T t, U *u){
*u += U(t);
}
};

template <>
template <>
A<int>::A<int,float>(int t, float *u){
*u += float(2*t);
}

int main(){
float f = 0;
int i = 1;
A<int>(i, &f);
std::cout << f << std::endl;
return 0;
}

最佳答案

尝试

template <>
template <>
A<int>::A(int t, float *u){
*u += float(2*t);
}

这似乎对我有用。

关于模板化类的模板化构造函数的 C++ 显式模板特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563165/

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