C++ 是否有类型特征来计算构造函数的总数?
可以推断一个类型在编译时拥有的构造函数的数量吗C++ 是否有类型特征来计算构造函数的总数?,c++,templates,c++14,template-meta-programming,typetraits,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 st
#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';
}
#包括
#包括
结构A{
国际货币基金组织;
浮点数
//构造器1
A(int i):m_i(i){}
//建造师2
A(float f):m_f(f){}
};
int main(){
//印刷品2
标准::cout
可以推断一个类型在编译时拥有的构造函数的数量吗
在C++11/14中,据我所知,没有
为什么?因为C++没有支持,但是现在有一个学习小组会对C++进行添加反射的提议。首先,为什么你认为上面的类有2个构造函数?第二,第第三个,为什么你想知道这个?我在几个星期前问了一个非常类似的问题,看,答案是“不”。。你想知道用户定义的构造函数的数量还是构造函数的总数?你的类有另外两个隐式声明的构造函数,但是你的程序没有使用它们,所以它们没有定义。这两个构造函数应该包括在计数中,还是应该被忽略,除非它们被定义?不管怎样,答案是你的问题是否定的,这听起来像是XY问题。你如何计算一个构造函数模板,模板a(T&&T){}
?