简介:
嗨,我是Brandon Jacobs,是Visual C++图书馆团队的实习生。在实习期间,我的任务是为Stephan T添加新功能。拉瓦维的
总结:
以下是我对
1. 添加了无序地图和无序地图视图 包装类到
2. 向Vector、VectorView、Map、MapView添加了初始化器u列表构造函数, 无序地图, 无序的地图视图。
3. 添加了验证,以便客户使用有效的WinRT类型来实例化
特征:
无序地图和 无序地图视图:
这是std::unorderedu map类的包装类。功能与Map和MapView相同。唯一的区别是底层的数据结构,它是一个哈希表而不是一个平衡的二叉树。因此,类型必须是可哈希的,并且必须能够显示相等性。就像Map和MapView默认为std::less一样, 无序地图和 UnorderedMapView默认为std::hash和std::equalu to。hash和equality谓词都是模板参数,因此您可以更改UnorderedMap和 UnorderedMapView提供自己的谓词。
初始值设定项列表构造函数:
现在可以使用C++ 11初始化列表列表构造函数构造任何数据结构。
举个例子:
命名空间WFC=Windows::Foundation::Collections;
命名空间PC=Platform::Collections;
WFC::IVector
WFC::IMap
=ref new PC::Map
WFC::IMap
=ref new PC::UnorderedMap
仅有效的WinRT类型:
我们现在检查要存储在给定数据结构中的类型是否是有效的WinRT类型。当前如果您有:
向量<普通类>
你会得到一个奇怪的编译器错误。现在我们检查传入的类型是否是有效的WinRT类型。如果此检查失败,您现在将得到一个更好的编译器错误,甚至包括您试图创建具有无效类型的集合的行。
只有将出现在Windows::Foundation::Collections接口中的项需要是有效的WinRT类型。诸如std::less、std::hash等谓词不会传递到Windows::Foundation::Collections接口,因此它们不受该限制的影响。
有效的WinRT类型包括:
- 整数
- 接口类^
- 公共参考类^
- 价值结构
- 公共枚举类
感谢您抽出时间阅读本帖,
布兰登·雅各布斯
SDE实习生——Visual C++文库