我有一个unordered_map
存储<string, A>
对。我想用这个片段放置对:
map.emplace(std::piecewise_construct,
std::forward_as_tuple(name),
std::forward_as_tuple(constructorArg1, constructorArg1, constructorArg1));
但是,如果我的A
类没有默认构造函数,则它无法编译并出现以下错误:
'A::A': 没有合适的默认构造函数可用
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\tuple 1180
为什么它需要一个默认构造函数,我怎样才能避免使用它?