簡體   English   中英

C ++中是否有一個標准函數,該函數接受一個參數並返回相同的值?

[英]Is there a standard function in C++, that takes an argument and returns the same?

我希望將以下函數用於某些綁定目的。

template <class T>
T fun(T arg) { return arg; }

是否有標准的C ++函數可用於執行此操作。 還是我必須自己寫?

我可以這樣寫:

template <typename T>
auto identity(T && x) -> decltype(std::forward<T>(x))
{
    return std::forward<T>(x);
}

不,沒有,但是您已經完成了很多工作。

我將其稱為id而不是fun ,因為它是身份函數。

如上所述,您可以以簡單的方式使用#define fn(x)(x)。 但是,當您將復雜的數據結構傳遞給您的“ fn”時,事情將變得非常難看,這將使您難以用誤導性的編譯器消息來追溯錯誤。

但是,如果您的綁定問題是一些線程同步問題。 那么答案將是如何使用線程API /庫。 例如,對於Ocaml來說,它像>> = res之類的東西,我們綁定到這里,直到找到由res表示的東西的結果。 讓我知道您正在使用的庫的名稱嗎?

玩得開心。

暫無
暫無

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

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