decltype

    0熱度

    2回答

    雖然試圖制定一個C宏來緩解非常量成員函數的寫作,調用具有完全相同邏輯的常量成員函數(請參見Effective C++的第1章第3項「避免常量和非常量成員函數中的重複」) ,我相信我在VS2013更新跨越decltype()錯誤傳來1. 我想用decltype(*this)在上述宏觀建立一個static_cast<decltype(*this) const&>(*this)表達,以避免在宏調用點傳遞

    2熱度

    2回答

    我有一個模板類,看起來像這樣內: template <typename T> class Foo { public: enum Mode { Mode1, Mode2, Mode3 }; // ... }; 我實例是: Foo<float> foo; // ... auto m = Foo<float>::Mode1; 但在我看來,一個不必要的冗餘以在實例化F

    1熱度

    1回答

    我有非常使用的std ::的result_of,decltype和std ::功能 與可變參數模板的麻煩。 我有下面的函數功能 - int foo(int a, int b, int c) { std::cout << a << b << c << std::endl; return 0; } 及以下類 template <class T, class... Args>

    5熱度

    1回答

    從C++標準草案N3337: 7.1.6.2簡單類型說明符 4所述的類型由decltype(e)表示定義如下: - 如果e是一個括號的ID-表達式或未經授權的類成員訪問(5.2.5),decltype(e)是由e命名的實體的類型。如果沒有這樣的實體,或者如果命名一組重載函數,則該程序是不合格的; - 否則,如果e是一個x值,decltype(e)是T&&,其中T是e類型; - 否則,如果e是一個左

    5熱度

    3回答

    我試圖確定各種C++成員函數的返回類型。我明白,decltype和std :: declval可以用來做到這一點,但我遇到了語法問題並找到了有用的例子。下面的TestCBClass顯示了一個包含混合靜態和常規成員函數的啞類的示例 - 帶有無參數和返回類型的&。根據所討論的方法,我希望能夠從各種方法中聲明一個返回類型的向量。 在我的應用程序中,這些方法是std::async的回調,我需要一個向量st

    5熱度

    4回答

    我有一個類型的對象,例如,std::vector<int> v; 現在,比方說,我想驗證v釋放它的所有內部存儲器。 在C++ 11 shrink_to_fit()方法之前,建議/保證的方法是將swap()與空的std::vector<>設置爲相同類型。 但是,我不想指定對象的類型。我可以用decltype指定類型,所以我想寫的東西是這樣的: std::vector<int> v; // use

    54熱度

    2回答

    ,我發現這樣的代碼: template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; } ,我和所有的細節,這是新的給我,但一想通。 請告訴我,我在哪裏可以閱讀,箭頭運算符(->)在函數標題中的含義是什麼? 我想純粹邏輯上,->運營商確定一個類型,這將得到auto

    0熱度

    2回答

    class vertex; bool compareVertex(vertex *v1, vertex *v2); std::priority_queue<vertex *, decltype(compareVertex)*> pq(compareVertex); 上面的代碼有什麼問題?我已經聲明並定義了vertex和compareVertex,但是編譯器告訴我:「unknown type

    4熱度

    2回答

    我有簡單的代碼: #include <type_traits> class A { public: static int a; }; void a() {} int A::a = [](){static_assert(std::is_function<decltype(a)>::value,"'a' is not a function");return 777;}();

    10熱度

    2回答

    如何在模板類中強制使用auto/decltype返回對成員變量的引用? 下面是我試圖做的一個簡單的例子。假設你有一個模板類存儲東西在一個私有成員變量,a_如下: #include <iostream> template <typename T> class A { private: T a_; public: A(T a) : a_(a) {} //