typetraits

    1熱度

    1回答

    我剛剛遇到std::rank,我不太明白它可以用於什麼。我明白它的作用,但有人可以給我幾個用例嗎?我在這裏找不到有用的東西。

    4熱度

    1回答

    我想在C++ 11(msvc2013)中編寫一個類型特徵,這將允許我檢查函數類型是否需要某些參數。我不要希望它檢查返回類型。我認爲這個想法基本上等於std::is_callable,但我很想知道我的方法有什麼問題,除了如何真正解決問題。 我的實現: namespace traits { namespace detail { template <typename T

    0熱度

    1回答

    我現在正在學習如何使用boost::geometry庫,並且我正在學習教程,其中引入了類型特徵以使代碼更通用。 struct mypoint { double x, y; }; template <typename P1, typename P2> double distance(P1 const& a, P2 const& b) { double dx = get

    2熱度

    1回答

    考慮下面的代碼: #include <iostream> #include <type_traits> int main() { std::aligned_storage<sizeof(double), alignof(double)> storage; std::aligned_union<sizeof(double), double> union_storage;

    0熱度

    1回答

    以下代碼來自示例代碼,以說明如何使用boost :: type_traits。它將使用兩種方法交換兩個變量。很容易理解,當兩個變量是整數(int)時,它們的類型特徵對應於true_type。但是,當兩個變量是布爾類型時,它們不再被視爲true_type。爲什麼會發生?謝謝。 #include <iostream> #include <typeinfo> #include <algorithm>

    1熱度

    1回答

    可以假設在未評估的上下文中,(::new (std::declval< void * >()) T())->~T()在語義上(在noexcept的意義上,但不是在表達類型意義上)等價於簡單T()?假設全球性的,也不是類範圍operator new超載,如果它喃喃自語。 通常在類型特徵T()內部運算符noexcept()中用於確定是否只有單獨的構造函數是否爲noexcept。這當然是錯誤的。 爲了防

    1熱度

    4回答

    ​​ 上面會輸出的程序: 1 0 它顯示了模板has_push_back如果函數push_back繼承不起作用。 即使它被繼承,是否有辦法讓它工作?

    4熱度

    1回答

    我玩弄type_traits,我發現了這個奇怪的std::string屬性: $ cat a.cpp #include <string> #include <type_traits> static_assert(std::is_nothrow_move_assignable<std::string>::value, "???"); static_assert(noexcept(std::

    5熱度

    3回答

    我有下面的代碼段,其中我定義struct quick與模板static方法random一些專業:(。我使用來自其他function_traits SO回答附於底部供參考) struct quick { template <typename T> static T random(); template <typename F> static void ch

    1熱度

    2回答

    我想編寫函數模板一樣 template< typename T > void foo(T& obj){ obj[0] = xxxxxx; } 其中T必須具有操作員[]適用。 T可以是任何類型的數組,std :: vector,std :: array或任何其他類型。所以,我不能用T作爲他們所有人的超類。我認爲這應該是在std::type_traits風格。