decltype

    1熱度

    1回答

    有我從具有宏纏身的輸出類型的庫使用功能: STRANGE_MACRO(something) the_function(Type1 t, Type2 u); 我想定義一個變量,以此回報值,而不首先聲明Type1或Type2 。 我希望像這樣的工作: decltype(the_function(Type1, Type2)) return_value; 但它不工作。我能否在不考慮宏定義的內容的情

    0熱度

    1回答

    如何在模板函數或類中實例化一個包含類型的容器變量? 我說對dependent scope; need typename in front; 推薦類型名稱但還是沒能使其發揮作用。 #include <iostream> #include <array> #include <type_traits> #include <typeinfo> #include <vector> using n

    0熱度

    1回答

    我正在使用constexpr來聲明std :: array的大小。 constexprt auto sizearr = 99; 根據對sizearr我想找到用來遍歷數組 char offset; //Class member 指數的類型時sizearr改爲 constexprt auto sizearr = 65000; 編譯時類型推導我想偏移自動申報作爲int類型而不是手動更改爲in

    13熱度

    1回答

    所以我有一個函數在頭文件中具有特定的簽名,並且我想聲明另一個函數具有完全相同的簽名而不是類型參數再次,當然,希望沒有宏...成員函數也應該有一個額外的隱藏參數顯然,this指針(因爲它不是一個靜態成員函數)。 現在,我真的很驚訝,以下hack/trick 在GCC和ICC中工作,但我不確定它是否是「合法的」C++。我不是特別關心的合法性如果它是一個支持擴展,但不幸的是,我不希望它在編譯器版本更新中

    2熱度

    2回答

    decltype(1 + 2)是否聲明一個xvalue或/或prvalue? cppreference說,decltype(表情)將宣佈: 1中。T & &如果表達式是x值 2.■如果表達式是prvalue 把t &如果表達式是左值 但我的問題是:如何生成一個表達式是一個xvalue?我想,返回值和臨時對象應該是x值,但實際上他們似乎是x值,在我的實驗: struct S{}; S f();

    21熱度

    1回答

    請注意,我用std::thread只是在錯誤得到可讀類型: int main() { const int * first; using deref = decltype(*first); std::thread s = std::remove_const<deref>::type{}; // const int ??? std::thread s2 = de

    0熱度

    1回答

    如果我有一些3D容器,它可以是任何包含類型的組合。 我必須編寫一個通用函數,它接收此容器作爲參數,並且必須返回與3D容器的元素類型相同的2D容器(矩陣)。 對於expample,在3D容器中所接納: std::vector<std::deque<std::deque<int>>> 3D; 返回類型: std::deque<std::deque<int>> 我怎樣才能做到這一點,並返回類型的

    0熱度

    1回答

    我試圖解決一個大學問題,除其他外,要求我們編寫一個函數,它需要一個參數:Type1容器,其中包含容器其中包含Type3的容器,其中包含任意類型的元素。容器類型不一定是不同的,但所有已知的是它們僅支持一些函數(例如size()),並且所有維度都是相同的。我們目前只處理了序列容器,所以我認爲他們會用自定義序列容器來測試它。 我需要的是一個返回包含Type1容器的Type2容器的函數。我試圖使用這樣的結

    2熱度

    3回答

    我想知道是否有人有同樣的技巧來找到find_me函數的返回類型,而不改變它的參數。 struct Stuck { Stuck() = delete; Stuck(Stuck&&) = delete; Stuck(const Stuck&) = delete; Stuck& operator=(Stuck&&) = delete; Stuck& op

    4熱度

    2回答

    您認爲哪種更好? template <typename T> void func(T x,T y) {} 或 template <typename T> void func(T x,decltype(x) y) {} IMHO,第二形式似乎優選的,因爲在類型x和y之間的聯繫是明確的,並且至少當重命名模板標識符的東西,看起來容易出錯較少。 編輯 第二種形式讓你打電話與一個使用第一個參數的子類