如何检查一个类是否完全符合给定的一组特征?

问题描述 投票:3回答:1

说我正在编写一个自定义容器,并想为其提供一个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 {/ * ...

c++ templates iterator traits
1个回答
0
投票
我不确定这是否是可靠的“特征符合”测试
© www.soinside.com 2019 - 2024. All rights reserved.