c++ - 模板类不同的返回类型取决于类参数

标签 c++ templates c++11 specialization

我有这样的类(class):

template<class T>
class A{
   // lots of methods here

   Something get();
};

如果 T 是特定类,我希望 Something get() 变成 const Something &get()

首先我尝试通过继承来实现它,但它变得太困惑了。

我可以这样做吗,而不专门化整个 class A 并且不引入第二个模板。

最佳答案

您只需用一种简单易用的类英语语言将其写下来即可。

std::conditional<std::is_same<T, SpecificClass>::value, 
                 Something const&, 
                 Something>::type get();

关于c++ - 模板类不同的返回类型取决于类参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33022733/

相关文章:

c++ - 从 C++ 程序中提取内存跟踪

没有 Xcode 的 macosx 上的 C++ SDL

C++ 模板复杂图像读取类执行时间慢,声明和实现分离

c++ - 未指定 lambda 函数的返回类型时出现段错误

c++ - 指向对象数组的指针的初始化

c++ - 在一维数组中填充二维数组

c++ - 处理特定类型元素的任何容器的非模板函数

c++ - 模板表达式如何摆脱临时变量

c++ - 具有默认值的结构的大括号(聚合)初始化

c++ - try_lock_for 未按预期工作