在 C++ TDD 中调用重载 const 与非 const 方法的好方法?

Good way to call overloaded const vs non-const method in C++ TDD?

全部

用迭代器写了一些花哨的容器。所以我有

iterator begin() {
}

iterator end() {
}

const_iterator begin() const {
}

const_iterator end() const {
}

在测试中我实例化容器,填充它并测试它。什么是 accepted/good 调用 const 和非常量版本的方法?比如说,像

这样的简单测试
TEST( c.end() - c.begin() == c.size() );

应该运行 用于迭代器以及 const 迭代器。 常量参考?一些丑陋的演员?

我认为根据 std 惯例,不重载它们是更好的解决方案。

改为声明 cbegin()cend()

我会为它做一个常量:

const container& constC= c;
TEST(constC.end() - constC.begin() == constC.size());