enable-if

    0熱度

    1回答

    是否有可能創建一種類似std :: conditional的std :: enable_if_and_else,但沒有未定義類的編譯時錯誤。 下面是一個例子: static constexpr bool myExpr = true; struct A {}; struct B; struct C : std::conditional<myExpr, A,

    1熱度

    1回答

    我有一個如下所示的.csv文件; Name,Age,Marks0,Marks 1,Marks2,Marks3 Amal,22,TRUE,FALSE,FALSE,FALSE Nimal,30,TRUE,TRUE,FALSE,FALSE Perera,19,TRUE,TRUE,FALSE,FALSE Sunil,25,TRUE,TRUE,FALSE,FALSE Amali,22,TRUE,T

    0熱度

    3回答

    我似乎無法弄清楚我要出錯的地方。 看到https://ideone.com/WKsZSN 我想創建一個函數,只有當它的參數是某種類型的模板類暴露了迭代器的typedef時才存在。 在非有條件的情況下,該功能會是這個樣子:在這種情況下 template<template <class, class> class C, class T, class A> void DoSomething(C<T,A

    2熱度

    1回答

    在C++ 11中,std::enable_if被添加到標準庫中。它相當於boost::enable_if_c,其條件是bool。這適用於相當簡單的條件,但只要使用謂詞將常量保留爲value,則必須使用更詳細的構造​​將其變爲bool。 這正是boost::enable_if(沒有_c後綴)。 爲什麼標準庫中沒有等價物?

    0熱度

    1回答

    我試圖定義一個模板,將指定一個存儲類型給定另一種類型T.我想使用enable_if來捕獲所有的算術類型。以下是我對此的嘗試,其中抱怨模板使用2個參數重新聲明。我嘗試添加第二個虛擬parm到主模板,但得到不同的錯誤。如何才能做到這一點? #include <string> #include <type_traits> template <typename T> struct storage_ty

    17熱度

    3回答

    使用C++ 11的enable_if我想定義幾個專門的函數實現(基於參數的類型,比如說)以及默認實現。什麼是定義它的正確方法? 以下示例因爲調用「generic」實現而無法按預期工作,無論類型爲T。在我的小例子, #include <iostream> template<typename T, typename Enable = void> void dummy(T t) { s

    2熱度

    4回答

    在一個類中,我有兩種不同的方法,根據調用者模板參數應該是相互排斥的。 class Foo { // For collections template<class T> typename boost::enable_if<boost::is_same<typename std::vector<typename T::value_type>, T>::value, co

    0熱度

    1回答

    我試圖啓用一個按鈕後,檢查複選框,元素是在模態。我使用MVC,和我加入後主要結合的觀爲使用它們只是像莫代爾這個樣子的這裏面 <script type="text/javascript"> var Model = function() { self.check = ko.observable(false); }; $(document).ready(fun

    0熱度

    1回答

    我正在使用SFINAE構建一個基本的序列化庫。 比方說,我有一個類實現了一個通用的process方法,該方法讀取任何類型(允許用戶擴展)並對其進行序列化。我正在使用std::enable_if將此方法專用於不同的模板參數類型。下面是一個例子: class OutputSerializer { public: OutputSerializer(std::ostream& str) :

    0熱度

    1回答

    這似乎是一個簡單的類成員funrtion,但我有與std::enable_if 語法的情況其實是很簡單的一些困難。 模板類與模板參數,其將不對一種特定類型的T來實現T 2的功能。 兩個函數沒有參數或返回值的T 一個函數接受一個int,另一個函數返回一個int。 任何簡單的例子? 或者是否有另一個選項(C++ 11)不使用std::enable_if?