【发布时间】:2021-03-07 08:19:01
【问题描述】:
类似于std::enable_if 我想要一个else 类型信息(我需要这个用于依赖可变参数模板static_cast)。我从standard 扩展了可能的实现,如下所示:
template<bool B, class T = void, class F = void>
struct typename_if_else
{};
template<class T, class F>
struct typename_if_else<true, T, F>
{
typedef T type;
};
template<class T, class F>
struct typename_if_else<false, T, F>
{
typedef F type;
};
template< bool B, class T = void >
using typename_if_else_t = typename typename_if_else<B,T>::type;
有没有办法摆脱不再需要的空结构(第一个定义)?
【问题讨论】:
-
您可以摆脱所有三个专业。不要重新发明轮子en.cppreference.com/w/cpp/types/conditional
标签: c++ templates typetraits enable-if