簡體   English   中英

制作變量名別名的方法

[英]Ways to make variable name aliases

我寫了一些將迭代器作為參數的算法。 我希望這些迭代器的名稱為用戶反映一個事實,即它們表示一個范圍,因此我將其命名為:

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

我也想在代碼中使用這些參數,但是在實現名稱的上下文中, begin_iend_i不能反映它們的用途,因此我需要為它們使用名稱別名。 那就是參考的意思,對不對?

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_i ,但是最好隱藏初始名稱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
}

但是,對於某些文檔工具,參數名稱不匹配可能會產生警告。

  1. 這是對引用的正確使用嗎?

是。

  1. 是否有任何缺點(除了幾個未使用的名稱范圍外)?

沒有。

  1. 有沒有更好的方法來實現這一目標?

不要這樣 沒有用。

  1. 有沒有隱藏名字的方法?

沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM