我有类似列表的数据结构的非const版本:定义常量和穿越功能
template<typename T>
struct node {
T val;
unique_ptr<node<T>> next;
};
和一个简单的穿越功能:
template<typename T, typename UnaryOp>
void traverse(node<T>& list, UnaryOp op) {
node<T>* current = &list;
while(current) {
op(*current);
current = current->next.get();
}
我现在需要一个版本的const
和non-const
traverse
函数接受const node<T>& list
或node<T>& list
,这取决于上下文,最好避免代码重复。这怎么可能实现?
这是什么,你需要在这里'const'?遍历函数根本不必是成员,所以你似乎在寻求别的东西。 – thokra
签名中的'list'参数。我需要一个''const节点&list''和一个''节点&list''。一个例子是实现一个函数''size_t size(const节点&list){...}'' –
fuji
澄清这个问题,以反映我的意见。 – fuji