有条件地提供using声明

假设我有一个foo带有模板参数的类,T我想为对应于的引用和常量引用类型提供一个 using 声明T

template<typename T>
struct foo
{
    using reference = T&;
    using const_reference = T const&;
};

有没有一种方法可以使用declarations来“启用”这些,如果T不是void 没有专门化整个班级foo

回答

您可以从具有以下特化的基类继承void

template<typename T>
struct typedefs {
    using reference = T&;
    using const_reference = T const&;
};

template<>
struct typedefs<void> {};

template<typename T>
struct foo : typedefs<T>
{};

  • @0xbadf00d, Nothing wrong with doing that. This is a good answer.

以上是有条件地提供using声明的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>