c++ - 如何使用 initializer_list 列表来初始化具有自定义类的 map

标签 c++ initializer-list explicit

下面的代码可以工作:

pair<int, string> p({1, "aaa"});

但是,下面的代码是行不通的:

struct XXX {
  XXX() {}
  explicit XXX(int l) : v(l) {}
  int v = 1;
};
pair<int, XXX> p2({1, 2});

我知道如果我删除“显式”,代码就可以工作。然而,使用 explicit 有它的好处...如何使用 explicit 关键字使 initializer_list 工作..?

最佳答案

pair<int, XXX> p2({1, XXX(2)});

关于c++ - 如何使用 initializer_list 列表来初始化具有自定义类的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31130209/

相关文章:

c++ - 构建成对 vector 时出现编译器错误

c# - 在 C# 中将泛型显式转换为另一种类型

c++ - 初始化列表中的对象初始化问题

c++ - 为什么成员变量在 C++ 构造函数初始化列表中可见?

c++ - Qt:即使失去焦点也将子窗口保持在父窗口之上

c++ - CppUnitTestFramework 的 CString ToString() 模板重载

C++:使用显式关键字的编译错误

c++ - 显式模板特化

python - 跟踪由 Cython 包装的 C++ 中分配的内存使用情况

c++ - 使用 openFrameworks 进行形状操作