sfinae

    4熱度

    1回答

    我在試着寫一個SFINAE模板來確定兩個類是否可以加在一起。這主要是爲了更好地理解SFINAE是如何工作的,而不是出於任何特定的「真實世界」原因。 我已經走了這麼得到的是 #include <assert.h> struct Vec { Vec operator+(Vec v); }; template<typename T1, typename T2> struct Ca

    5熱度

    1回答

    我想知道是否有可能向SFINAE方法延伸到檢測一個類是否具有一定的成員函數(如這裏所討論的: 「有C++中的技術知道,如果一個類具有的一個成員函數定簽名?」 Check if a class has a member function of a given signature )支持模板成員函數?例如。能夠檢測在下面的類函數foo: struct some_class { templat

    4熱度

    3回答

    這裏的原標題是 解決方法在VS2005çSFINAE錯誤++ 這是試探性的使用SFINAE的,以便爲is_pod模板類相當於POD岬那存在於TR1中(在VS2005中還沒有TR1)。當模板參數是一個POD類型(包括使他們的基本類型和結構)和假時,它不是(像非平凡的構造函數)它應該有它的價值成員真。 template <typename T> class is_pod { public:

    3熱度

    1回答

    有人可以解釋以下行爲(我正在使用Visual Studio 2010)。 標題: #pragma once #include <boost\utility\enable_if.hpp> using boost::enable_if_c; enum WeekDay {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}

    7熱度

    2回答

    指的是昨天的帖子, 今天早上醒來了。爲什麼這實際上工作?只要函數test是關於這個函數沒有主體,那麼它如何執行任何操作?我想知道爲什麼以及如何工作?我真的很想看到你的答案。 template<typename T> class IsClassT { private: typedef char One; typedef struct { char a[2]; } Tw

    92熱度

    13回答

    我在尋求模板技巧來檢測某個類是否具有給定簽名的特定成員函數。 的問題是一個類似引用在這裏 http://www.gotw.ca/gotw/071.htm ,但不一樣的:在他回答的問題是C類必須提供一個成員函數與特定的簽名,否則程序韓元薩特的書的項目不會編譯。在我的問題中,如果一個類有這個功能,我需要做些事情,否則做「別的事」。 boost :: serialization面臨類似的問題,但我不喜歡

    0熱度

    2回答

    我目前正在爲我們的日誌記錄庫添加一些功能。其中之一就是可以聲明一個模塊名稱,該模塊名稱可以自動預先寫入該類中寫入的任何日誌消息。但是,如果沒有提供模塊名稱,則不會有任何前提。目前我正在使用一個具有返回名稱的靜態函數的特徵類。 template< class T > struct ModuleNameTrait { static std::string Value() { return

    3熱度

    2回答

    這個類:如果T沒有默認的構造函數 template <class T> struct A { A() : t(T()) { } A(const T& t_) : t(t_) { } T t; }; 將無法​​編譯。 這一個: template <class T> struct A { A(const T& t_) : t(t

    2熱度

    4回答

    我需要爲stl算法設計謂詞,例如find_if,count_if。 namespace lib { struct Finder { Finder(const std::string& name): name_(name) { } template< typename TElement > bool o