让我们假设我们有两个类
struct A
{
int x = 1;
};
struct B
{
int y = 2;
};
Run Code Online (Sandbox Code Playgroud)
我想要有返回成员值的模板(在AI的情况下想要返回"x"的值,如果BI想要返回"y"的值).
示例电话:
const auto myVariable = f<A>();
Run Code Online (Sandbox Code Playgroud)
要么
A a;
const auto myVariable = f<A>(a);
Run Code Online (Sandbox Code Playgroud)
我不想有2个模板专业化 - 理想情况下它会是一个带有某种"if语句"的模板,但也许它不可能?
它可以用C++ 11编写(但不能用C++ 14编写).
一般来说,当你遇到这样的问题时如何使用模板 - 相当大的模板,只需要在一两个地方你需要从不同的成员中获取值 - 这可以根据该变量的类型推断出来.
问题:不必要的是不允许修改A类和B类