【发布时间】:2020-04-25 09:43:14
【问题描述】:
我目前正在使用 ContainsValue() 等其他方法为 std::map 类型开发自定义包装器。但是由于我尝试使其尽可能与 std::map 兼容,所以我想知道是否可以使用“多维初始化列表”对其进行初始化。
我的自定义地图类型是这样定义的:
template <typename TKey, typename TValue>
class CustomMap {
private:
std::map<TKey, TValue> mapContent;
public:
// Some interaction methods here
void operator=(/* initialization type here */) {
/* initialization here */
}
}
我说的是这样的初始化列表:
CustomMap<uint64_t, std::string> test = {
{ 0xFF, "MaxByte" },
{ 0xFFFF, "MaxWord" },
{ 0xFFFFFFFF, "MaxDWord" },
{ 0xFFFFFFFFFFFFFFFF, "MaxQWord" }
};
请注意,在初始化中没有任何类型的强制转换。这一切都是自动发生的;就像原来的 std::map 类型一样。
【问题讨论】:
标签: c++ stdmap initializer-list