enable-if

    4熱度

    3回答

    我目前正試圖實現一個toString功能.toString()或std::to_string()這取決於可用於推導型 到目前爲止,我有這方面的工作片段的呼叫: #include <iostream> #include <string> template <class T> auto toString(const T& obj) -> decltype(obj.toString(

    0熱度

    1回答

    我有以下代碼: #include <iostream> #include <type_traits> template <typename T, typename std::enable_if <std::is_convertible<int, T>::value, T>::type> void func(T a) { std::cout << a <<

    1熱度

    1回答

    給出。在我內部使用以下格式的類型定義庫: using AnsiChar = char; using WideChar = wchar_t; 全局類型定義,基本上存儲char特定於平臺的是在整個庫使用的定義如下: // Either using Char = AnsiChar; // or using Char = WideChar; // depending on the platf

    5熱度

    2回答

    我使用定義的is_callable結構如下 template <typename F, typename... Args> struct is_callable { template <typename U> static auto test(U* p) -> decltype((*p)(std::declval<Args>()...), void(), std::true_

    0熱度

    1回答

    我有一個類,它包裝一個枚舉併爲其提供字符串轉換。現在我介紹了模板參數'fastStringConvert',它控制着如何使用SFINAE進行轉換(在這裏找到:how can I use std::enable_if in a conversion operator?)。代碼在MSVC下編譯,但在GCC和Clang下失敗。 error: no type named ‘type’ in ‘struct

    3熱度

    3回答

    在這裏,我目前的模板函數over(vec, f)的兩種變型的首次下調。 兩個版本迭代一個矢量狀對象,並調用用於每個元件的功能的對象。 一個版本調用帶有兩個參數的函數對象 - 一個元素的參考和索引 - 第二隻用元件參考。 的想法是,讓編譯器來選擇匹配傳入的拉姆達,使用戶可以表達在lambda簽名的意圖,而不必選擇一個不同名稱的免費功能的版本。 下面的代碼: #include <vector> #i

    1熱度

    1回答

    我想使用enable_if來爲某些類型定義一個類。在這些類型中,我需要使用一些模板類型,並且我無法使其工作。這裏是一個MWE: 模板類A: template<typename T, typename Enable = void> class A; 其專門爲一些簡單的類型,如整型這裏,可以定義如下: template<typename T> class A<T, std::enable_if<

    4熱度

    2回答

    我有兩個功能 template <typename... Args> void foo(Args&&... args) { /* ... */ } template <typename... Args> void foo(const std::string& name, Args&&... args) { /* ... */ } 目前像foo("bar", /* arguments *

    1熱度

    3回答

    試圖專門化成員方法。 讀這前一個問題:std::enable_if to conditionally compile a member function 我可以很明白我做錯了什麼。 #include <string> #include <iostream> #include <type_traits> template<typename T> class Traits { };

    5熱度

    2回答

    我想std :: enable_if第一次和掙扎。 任何指導將不勝感激。 當作玩具例子,這裏是一個簡單的靜態矢量類,爲此我要定義一個拷貝構造函數,但行爲取決於載體的相對大小: 只是將數據複製到更小或相同大小的矢量 複製數據到一個較大的載體中,然後墊用零 其餘部分,以便所述載體類是: template <size_t _Size> class Vector { double _data