return-type-deduction

    2熱度

    1回答

    隨着C++ 14的新的返回類型推演,你可以寫類似的代碼: auto almostPi (void) { return 3.14159; } 和函數本身將使用返回值來決定實際的函數的返回類型,在本例中爲double。 如何做到這一點的東西像通用庫,你不有的源代碼,而不是隻具有含像一個頭文件: auto almostPi (void); 編譯器如何在案例知道如果你這樣做,警告你: char *

    2熱度

    1回答

    以下代碼結果0100(符合CLang,GNU ++ 14)。我希望0001,因爲需要FUNC右值向量作爲參數,然後向前(C)[0]是爲int const引用,所以鍵入decltype(自動)的扣應導致到const int的&。請幫我理解結果。謝謝! template <typename T> decltype(auto) func(T&& c) { return forward<T>

    3熱度

    1回答

    我在理解N3638中描述的auto類型說明符的C++ 14擴展如何實現以及允許的內容方面有些困難。 具體變化爲標準人說, 如果函數的聲明的返回類型包含的佔位符類型,函數的返回類型從return語句中的身體推導功能,如果有的話。 當函數的主體與聲明位於同一個文件中時,很容易看出它是如何工作的;但考慮一下頭文件聲明使用auto佔位符的方法但未定義它的情況。包含此頭文件但包含而非的翻譯單元如何包含定義成

    0熱度

    1回答

    我知道返回類型auto和decltype(auto)的含義。此外,我知道auto&&變量聲明。所以,我想auto&&的返回類型: template <class X, class Y> auto a(X &&x, Y &&y) -> auto { return x+y; } template <class X, class Y> auto b(X &&x, Y &&y) ->

    0熱度

    1回答

    CPU:酷睿雙核 RAM: 4 GB OS: Windows 7的64位 IDE:代碼:: Blocks的16.0 編譯:TDM-GCC MinGW IT水平: Newb試圖學習C++。 我用下面的代碼來測試編譯: #include <iostream> #include <string> using namespace std; auto add([](auto a, auto b){ r

    3熱度

    4回答

    當前我嘗試編寫一個函數retrieveKeys(),它給了我一個std :: map的鍵並將其存儲在某個std :: container中。該功能在兩種方式中應該是通用的: 接受std :: map和std :: unordered_map作爲參數類型。 返回用戶定義的容器中的鍵, G。 std :: vector或std :: deque(容器必須支持push_back()方法)。 目前使用該功

    37熱度

    1回答

    考慮以下幾點: template<typename Der> struct Base { // NOTE: if I replace the decltype(...) below with auto, code compiles decltype(&Der::operator()) getCallOperator() const { return &Der::o

    1熱度

    2回答

    我覺得我應該以這樣一個事實開頭,即我正在用sbt構建我的項目。 我的問題是,如果在編譯時某個方法返回某個未導入類型的東西,則在我調用該方法的文件中,只要我使用類型推斷,就會編譯所有內容。一旦我嘗試將我的函數的返回值創建的var/val分配給unimported類型,我得到一個編譯器錯誤。 可以說我有兩個包中的兩個類。包中的類爲App,包main和類Imported包libraries。讓我們進一步

    6熱度

    1回答

    考慮下面的代碼: template< class T1 , class T2> auto calc(T1 a , T2 b) { return a + b ; } template< class T1 , class T2> auto calc(T1 a , T2 b) -> decltype(a + b) { return a + b ; } 什麼在第二

    2熱度

    2回答

    有沒有辦法可以做到這一點?據我所知還沒有,因爲語言不支持,但我想確認 template <typename Something> ConceptCheck<auto> return_something(const Something& something) { return process_something(something); } 這將是不錯的在某些情況下。例如,如果想要記