std::enable_if的错误使用方法

Posted gamecenter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了std::enable_if的错误使用方法相关的知识,希望对你有一定的参考价值。

/// Alias of std::enable_if...
template <bool B, typename T = void>
using Enable_if = typename std::enable_if<B, T>::type;

Template<typename T, std::size_t N>
class A 
   ...
    template <std::size_t NN = N,
          typename = Enable_if<NN == 2>>
    Some_Return_Type
    method(param1, param2)
    

    template <std::size_t NN = N,
              typename = Enable_if<NN == 1>>
    Some_Return_Type
    method(param1)
    


;


Template<typename T, std::size_t N>
class B 
   ...
    Enable_if<N == 2, Some_Return_Type>
    method(param1, param2)
    

    Enable_if<N == 1, Some_Return_Type>
    method(param1)
    
;

如果我有:

 

至少有2个方法的参数不同,并且它们具有相同的名称,但其中一个方法必须是“活动的”(如果n==1,如果n==2,另一个)。

只有一个方法在n==0时是活动的,在其他情况下是不活动的。

 

有没有人知道怎么解决呢

以上是关于std::enable_if的错误使用方法的主要内容,如果未能解决你的问题,请参考以下文章

SWIG C++/Python 绑定和支持带有 std::enable_if 的条件成员

std::enable_if 在模板参数上确定 STL 容器

std::enable_if与boost::enable_if,boost::enable_if_c的区别与联系

std::enable_if与boost::enable_if,boost::enable_if_c的区别与联系

std::enable_if 用于两种不同的方法实现(4 种不同的情况)

std::enable_if与boost::enable_if,boost::enable_if_c的区别与联系