说我正在编写一个自定义容器,并想为其提供一个RandomAccessIterator
。
template<class T>
class MyContainer
{
public:
class RandomAccessIterator
{
/*
... operators, constructors, etc...
*/
};
RandomAccessIterator begin();
RandomAccessIterator end();
/*
... class implementation ...
*/
};
现在,如何检查刚刚编写的迭代器与标准库算法100%兼容?一种明显的解决方案是只尝试一种:
MyContainer<int> list;
std::sort(list.begin(), list.end());
...并验证它是否可以编译并产生期望的结果。
考虑到这一点,我不确定这是否是可靠的“特征符合性”测试,而这正是这个问题的实质。如果我忘记提供任何必需的方法/运算符,编译器是否会一直抱怨?如果没有,那么确保我的类型完全实现给定特征的最佳方法是什么?@@编辑:该帖子不再引用有关“ STL”的标准库,这在评论中指出是错误的。
假设我正在编写一个自定义容器,并希望为其提供一个RandomAccessIterator。 template
class MyContainer {public:class RandomAccessIterator {/ * ...
我不确定这是否是可靠的“特征符合”测试