我有一个带有模板的课程在这个类中有一个变量T * Variable;和可变字符串str;并且有部分代码的功能:
if(std::is_same<T, string>::value){
*Variable = str;
return 0;
}
自然地,尽管上述分配由于之前的条件而无法在不同的变量上工作,但编译器抱怨编译时。我正在考虑编写带有两个模板参数的条件模板函数,以代替上面的分配:
Assign(Variable, &str);
在上课之前:
template <typename T, typename U>
conditional <T, U> void Assign(T* to, U* from){
;
}
conditional <string, string> void Assign(T* to, U* from){
*to = *from;
}
所以编译器会为我所需的字符串选择专门的字符串。如何制定呢?可以仅针对变量类型来表述吗?还是需要第三个参数?或者也许对于函数内部的主要代码可能会有某种模板条件?
仅使用模板专业化: