typetraits

    5熱度

    3回答

    在C++ 11標準的細化過程中,看起來is_trivially_destructible被認爲是比has_trivial_destructor更好/更一致的名稱。 這是一個相對較新的發展,我的G ++ 4.7.1仍然使用舊名稱,它被固定爲符合該標準爲4.8: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52702 我一直懶洋洋地使用#if這有利於編譯器我

    3熱度

    1回答

    是否可以編寫一個僅用於類類型的部分模板專業化,例如,從特定類繼承或遵守可以通過類型特徵表達的其他約束? 即是這樣的: class A{} class B : public A{} template<typename T> class X{ int foo(){ return 4; } }; //Insert some magic that allows this part

    6熱度

    3回答

    如何在編譯時測試B類是否源自std :: vector? template<class A> struct is_derived_from_vector { static const bool value = ????; }; 如何在編譯時測試B類是否來自模板族? template<class A, template<class> class Family> struct is

    4熱度

    4回答

    考慮到類模板,可以使用類型特徵和虛擬啓用程序模板參數爲特定類型的組提供模板特化。我已經asked that earlier。 現在,我需要爲函數模板做同樣的事情:也就是說,我有一個模板函數,並希望針對一組類型進行專門化,例如,類X的子類型的所有類型。我可以用型性狀這樣表達的: std::enable_if<std::is_base_of<X, T>::value>::type 我想過做這樣說:

    1熱度

    1回答

    我寫C++ 11 NamedPipe提取和想有以下API *: template<typename Mode> class NamedPipe final { public: void Open(); std::enable_if<Mode == Receiver> void Send(); std::enable_if<Mode =

    7熱度

    3回答

    只是爲了看看它是如何工作的,我看着在頭type_traits中的libstdC++實現的std::common_type。我不得不承認我不太瞭解它是如何工作的。這裏是: /// common_type template<typename... _Tp> struct common_type; template<typename _Tp> struct common_typ

    0熱度

    1回答

    我目前正在嘗試編寫一些靈活的編譯時數學庫,並剛剛遇到替代失敗,我無法擺脫。這是問題: 首先,我正在寫一個理性的類,我會把唯一需要的部分。 template<typename T> class rational { static_assert(std::is_integral<T>::value, "Can only contain integral values.");

    1熱度

    2回答

    正如問題所述,我可以通過typetraits找出是否有const修飾符?

    3熱度

    5回答

    請看下面的例子 template<class Type = void> class MyClass { public: double getValue() { // if "Type == void" return _x, if "Type != void" return _y return (/* SOMETHING */) ? (

    2熱度

    1回答

    考慮下面的類: template<bool Condition> class MyClass { protected: /* SOMETHING */ _var; }; 隨着std::conditional<Condition, const int, int>::type _var;我可以選擇是否_var是一個常量或通過模板參數的非const的。 如何做靜態/非靜態等