cost 290 ms
decltype(auto) 返回類型和生命周期問題

[英]decltype(auto) return type and lifetime issues

我只是在看一些具有以下粗略輪廓的代碼。 所以如果我這樣打電話 圍繞這個的一些問題是,如果f返回一個引用並且f通過移動語義獲得object的所有權,我們不會留下生命周期問題嗎? decltype(auto)返回的潛在問題是什么? 或者這樣更好 ...

為什么在 function 的返回類型中允許對 auto 進行修飾

[英]Why are adornment to auto allowed in the return type of a function

我一直認為使用auto作為返回類型的唯一形式如下: 我剛剛看到添加了 const 引用裝飾說明符的代碼。 整數值 = 42; 這個標准是C++嗎? 我認為您只能使用帶有關鍵字 auto only 的第一種形式,它會衰減,即刪除 cv 限定符和引用。 任何人都可以分享標准中存在的地方嗎? 這和做同樣事 ...

錯誤:在扣除“auto”之前使用“decltype(auto) X”(對於生成的 lambda)

[英]error: use of 'decltype(auto) X before deduction of 'auto' (for generated lambda)

我正在嘗試使用帶有 decltype(auto) 的特殊生成成員 function 來確定 this-capturing lambda 的類型。 但是,編譯器拒絕為以下需要它的上下文確定 lambda 的類型,即使它是 declare before 。 我怎樣才能避免這個問題? 演示 產量: 和 ...

完美轉發對的返回元素

[英]Return element of pair with perfect forwarding

我想寫一個 function 來評估一些返回一對(可能作為引用,並且可能包含引用)並返回第二個元素的表達式,但它轉發引用而不是復制它們。 這是一個不太有效的例子:#include <utility> #include <type_traits> #include <io ...

為什么 decltype(auto) 不返回左值的地址?

[英]Why doesn't decltype(auto) return the address of the lvalue?

我有以下代碼 我本來期望 foo 的類型是 因為a是左值而 decltype(a) 是引用。 如果我做一件非常相似的事情,但用完美轉發 lambda 混淆它,我會得到不同的結果。 foo 的返回類型變為int& 誰能告訴我這里發生的事情的確切規則? ...

返回 auto&& 和 decltype(auto) 有什么區別?

[英]What is the difference between returning auto&& and decltype(auto)?

我正在嘗試制作模板包裝器 function,它應該轉發參數和返回值。 而且我無法決定使用auto&&或decltype(auto)作為返回類型哪個更好。 我讀過 Scott Meyers 的文章並了解到與 auto 相比有必要返回decltype(auto) auto不去除 ref ...

盡管刪除了復制構造函數,但 C++14 函數返回對象數組

[英]C++14 Function returns array of objects although copy constructor is deleted

從舊的 C++98 我知道,如果函數聲明/定義中沒有提到,則返回類型復制(按值),否則使用地址運算符“&”。 現在我正在使用 auto 和 decltype 的概念來讓編譯器確定返回類型。 在一個例子中,我寫了一個class A ,其中除了默認的 ctor 之外,其他任何 ctors 都被 ...

在 C++ 非類型模板參數中使用 decltype(auto)

[英]Using decltype(auto) in C++ non-type template parameter

我正在為非類型模板參數學習 C++17 新特性decltype(auto) 。 我寫了一個簡單的代碼片段如下: 據我了解, Foo<42>應該與Foo<x>類型相同。 但是, static_assert語句使用 clang++、MSVC 19.27 進行編譯,但使用 G ...

decltype(auto) 是否使尾隨返回類型過時?

[英]Does decltype(auto) make trailing return type obsolete?

關於尾隨返回類型、 auto返回類型推導和非常有用的decltype(auto)的問題和答案有很多很多。 但是由於我們有decltype(auto) ,所以我無法找到是否需要尾隨返回類型的答案。 是否存在尾隨返回類型可以解決的情況,其中decltype(auto)要么無法使用或不起作用(給出意外/ ...

從函數中正確傳播 `decltype(auto)` 變量

[英]Correctly propagating a `decltype(auto)` variable from a function

(這是“ `decltype(auto)` 變量是否有任何實際用例的后續內容? ” ) 考慮以下場景 - 我想將函數f傳遞給另一個函數invoke_log_return ,它將: 調用f ; 打印一些東西到stdout ; 返回f的結果,避免不必要的復制/移動並允許復制省略。 ...

是否存在`decltype(auto)`變量的實際用例?

[英]Are there any realistic use cases for `decltype(auto)` variables?

從我的個人經驗和咨詢答案到諸如decltype(auto)的一些用途之類的問題? 我可以找到很多有用的decltype(auto)用例作為函數返回類型占位符 。 但是,我正在努力思考decltype(auto)變量的任何有效(即有用的,現實的,有價值的)用例。 想到的唯一可能性是存儲函 ...

decltype(auto)類型推導:return x vs. return(x)

[英]decltype(auto) type deduction: return x vs. return (x)

我正在查看有關C ++ 14語言擴展的isocpp.org常見問題解答 ,閱讀有關decltype(auto) : ... 注意: decltype(auto)主要用於推導轉發函數和類似包裝器的返回類型,如上所示,您希望類型完全“跟蹤”您正在調用的某個表達式。 但是,除此之外 ...


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