另请参见 C ++标准列表和默认可构造类型
这不是什么大问题,只是令人讨厌,因为我不希望在没有特定参数的情况下实例化我的班级。
#include <map>
struct MyClass
{
MyClass(int t);
};
int main() {
std::map<int, MyClass> myMap;
myMap[14] = MyClass(42);
}
这给我以下g ++错误:
/usr/include/c++/4.3/bits/stl_map.h:419:错误:没有匹配的函数可用于调用“ MyClass()”
如果添加默认的构造函数,编译效果很好;我敢肯定这不是由语法错误引起的。