2016-07-29 61 views
1

全部在C++ TDD中调用重载常量与非常量方法的好方法?

用迭代器写了一些奇特的容器。所以我有

iterator begin() { 
} 

iterator end() { 
} 

const_iterator begin() const { 
} 

const_iterator end() const { 
} 

在测试我实例化容器,填充和测试它。什么是接受/好方法来调用const和非const版本?说,像

TEST(c.end() - c.begin() == c.size()); 

应该运行迭代器以及常量迭代器的简单测试。 Const参考?一些丑陋的演员?

回答

5

我只想做一个const &它:

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

看起来像是最好的选择,谢谢 –

1

按照std惯例,我认为不要超载它们是更好的解决方案。代替

声明cbegin()cend()

+3

性病惯例是做上述所有的:'迭代开始();','为const_iterator开始()const的;'和' const_iterator cbegin()const;' – David

+0

不是一个选项,不幸 –