boost-any

    0熱度

    1回答

    我正在編寫幫助函數,它將DBus屬性值轉換爲std類型。爲此,要轉換少數類型,我需要創建一個std::map。該地圖將代表DICT類型DBus。 DBUS中的DICT類型可以具有任何類型作爲鍵和任何類型的值。現在,我需要將其轉換爲std::map。我正在考慮使用std::map<boost::any, boost::any>代替DICT類型的DBUS。但是,我必須在將所有類型的DBUS轉換爲std

    2熱度

    1回答

    在我的項目中我詳盡地使用了boost::any和boost::variant。爲此,我在前一個問題Generic function to convert boost::any to boost::variant中設計了一個從boost::any到boost::variant的常規轉換程序。非常感謝幫助我的人們。 找到的解決方案對我沒有任何問題,但有一些嚴重的缺點。由完全模板化的解決方案產生的代碼膨

    0熱度

    1回答

    我最近開始使用Boost C++庫,並且正在測試可以容納任何數據類型的any類。實際上,我試圖定義operator<<以輕鬆打印any類型的任何變量的內容(當然,內容的類別也應該有operator<<)。 我只開始樣本類型(int,double ...),因爲它們默認顯示。直到現在,我有這個代碼: #include <boost/any.hpp> #include <iostream> #in

    -2熱度

    1回答

    假設我有兩種: 甲boost::any或 一種std::any(我使用C++ 17) 其中我不知道的類型。我是否可以打印或以字符串形式獲取any所保存類型的名稱? 注:即使是錯位式的名字 - 你typeid(TR).name()得到的那種 - 就足夠了,我可以把它從那裏用abi::__cxa_demangle。

    0熱度

    2回答

    當我聲明一個std::unordered_map<boost::any, boost::any>類型的變量時,它會引發惱人的編譯錯誤。 有關示例,any.cc: #include <map> #include <boost/any.hpp> int main() { std::map<boost::any, boost::any> dict; return 0; }

    0熱度

    2回答

    我一直在使用boost一段時間,但我仍然是一個新手。 我想我應該是boost::any,因爲我不再需要使用模板來處理使用或返回的類型化對象。 但是我發現對我來說仍然不方便的是一種更平滑的功能或方法,如果有任何簡單的來回傳輸其held數據,肯定不會在以後使用cast_any。 公約 (case 1) boost::any a="123456"; std::string s=boost::cast

    0熱度

    2回答

    我花了一段時間才弄清楚這一點,但boost::any的語義很混亂。 對於值類型,您可以使用它像這樣: int value = 100; boost::any something; something = value; //...later... int value = boost::any_cast<int>(&something); 此代碼是明確的,是有道理的,但商店value內部的

    1熱度

    1回答

    我在嘗試通過boost::any_cast引用強制檢索boost::any實例後無法保持常量正確性。 我的代碼: MyMap paramMapToSet; MyMap& paramMap = ¶mMapToSet; const MyMap& constParamMap = ¶mMapToSet; A hoe; paramMap.set(hoe, "structA");

    0熱度

    1回答

    我有不同的數據類型,我試圖保存在一個HashMap中。 HashMap將在變量參數函數內部創建。 結構和Boost下的工會::任何工具都不適合我, 工會不接受類作爲數據類型。 Boost ::任何給我錯誤,當我通過可變參數。 有什麼建議嗎? 請告訴我,如果我應該提供更多的細節。 代碼的boost ::任何 #include <iostream> #include <string> #inclu

    3熱度

    1回答

    我希望有一個類似於boost::any但具有更多限制類型集的類型。類似這樣的: limited_any<int,long,string> x; // x is like boost::any but is guaranteed to contain only an int, a long, or a string 你會如何推薦實現這個? (無論是我自己還是使用現有的解決方案)