是否有可能推断出类型在编译期间的构造函数数量?
#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';
}
我希望避免与构造函数的任何宏参与,但也许这是唯一的方法。
答案 0 :(得分:1)
是否有可能推导出类型在编译期间构造函数的数量?
在C ++ 11/14中? 否,据我所知。
为什么呢?因为C ++不支持Reflections,但是现在有研究组SG7: Reflection可以处理将为C ++添加反射的提案。