是否有类型特征来计算构造函数的总数?

时间:2015-05-29 19:55:04

标签: c++ templates c++14 template-meta-programming typetraits

是否有可能推断出类型在编译期间的构造函数数量?

#include <iostream>
#include <type_traits>

struct A{

    int m_i;
    float m_f

    //constructor 1
    A(int i): m_i(i) {}

    //constructor 2
    A(float f): m_f(f) {}

};

int main() {

    //prints 2
    std::cout << number_of_constructors<A>::value << '\n';
}  

我希望避免与构造函数的任何宏参与,但也许这是唯一的方法。

1 个答案:

答案 0 :(得分:1)

  

是否有可能推导出类型在编译期间构造函数的数量?

在C ++ 11/14中? ,据我所知。

为什么呢?因为C ++不支持Reflections,但是现在有研究组SG7: Reflection可以处理将为C ++添加反射的提案。