gpt4 book ai didi

c++ - 制作变量名别名的方法

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:29 25 4
gpt4 key购买 nike

我写了一些以迭代器为参数的算法。我希望这些迭代器的名称向用户反射(reflect)它们表示一个范围的事实,所以我这样命名它们:

template < typename T >
void foo( T begin_i, T end_i ) {
// ...
}

我也想在我的代码中使用这些参数,但是在实现名称 begin_iend_i 的上下文中没有反射(reflect)它们的用途,所以我需要它们的别名.这就是引用文献的作用,对吧?

template < typename T >
void foo( T begin_i, T end_i ) {
T& context_dependent_name1 = begin_i;
T& context_dependent_name2 = end_i;
// Code using aliases
}

这对我有用,但最好隐藏初始名称 begin_iend_i。我的问题是:

  1. 这是对引用的正确使用吗?是否有任何缺点(除了范围内几个未使用的名称)?
  2. 有没有更好的方法来实现这一点?
  3. 有没有办法隐藏初始名称?

最佳答案

另一种方法是在声明中使用一个名称,在定义中使用另一个名称:

template <typename T> void foo(T begin_i, T end_i);

稍后,或者例如在 .inl 中

template<typename T>
void foo(T context_dependent_name1, T context_dependent_name2) {
// Implementation
}

它可能会为一些文档工具生成参数名称不匹配的警告。

关于c++ - 制作变量名别名的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32210624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com