条件模板

问题描述 投票:0回答:1

我有一个带有模板的课程在这个类中有一个变量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;
}

所以编译器会为我所需的字符串选择专门的字符串。如何制定呢?可以仅针对变量类型来表述吗?还是需要第三个参数?或者也许对于函数内部的主要代码可能会有某种模板条件?

c++ class templates
1个回答
0
投票

仅使用模板专业化:

© www.soinside.com 2019 - 2024. All rights reserved.