boost-optional

    1熱度

    1回答

    考慮與不能直接存儲的成員,例如一類,因爲它不會有一個默認的構造函數,封裝類的構造函數沒有足夠的信息來創建它: class Foo { public: Foo(){} // Default ctor private: /* Won't build: no default ctor or way to call it's non-default ctor at F

    3熱度

    1回答

    我正在閱讀一些代碼,我遇到了一些我不明白的東西。 它關於測試Boost :: optional值是否被初始化。它使用提供了宏的ASSERT_TRUE()的gtest框架。 #include "gtest\gtest.h" void test() { boost::optional<someClass> opt = someFunc(); ASSERT_TRUE(!!opt)

    0熱度

    1回答

    我有一個函數,只有一個參數,我不想更新這些調用很多調用。但是我想從其他一些特殊的地方調用這個函數,但是在這種情況下,它應該另外填充一個我將傳遞一些數據的向量。 我知道我可以創建NULL指針默認參數爲std::vector容器內,然後,如果是空,跳過做任何額外的操作,如果它是一個有效的指針 - 收集數據,vector。不過,我想嘗試使用boost::optional。 請參閱下面的代碼。它編譯和工作

    0熱度

    2回答

    我嘗試使用升壓::可選 boost::optional<const char *> foo() { char ar[100] = {}; return boost::make_optional(true, ar); } 返回簡單數組,我得到了以下錯誤: could not convert ‘boost::make_optional(bool, const T&) [wit

    0熱度

    1回答

    我有兩個類,A和B.A類是一個變換(矩陣),對給定的向量執行變換。 class A{ public: ... A(...){}; ... void func_A(std::vector<double>& vec){ /* Transform vector vec */ } }; B類有兩個成員; std::vector<doub

    0熱度

    2回答

    我有一個「項目」,其數據可以用3種方式表示。我可以以運行成本從一種表示轉換爲其他表示。一旦我做了轉換,我想保留新的表示。無需「修改」核心數據,任何數據表示都可以轉換爲其他數據。由於運行時成本,我想要一個包含3個數據表示的類。在任何時候,其中1到3個將是有效的。 這真正的一點是因爲它也有訪問方法,用戶可以在這裏訪問某些東西。這可以從1個或更多的表示中獲得。例如,你可以從representation1

    3熱度

    1回答

    考慮下面的代碼示例: boost::optional<int> opt; opt = 12; int* p(&*opt); opt = 24; assert(p == &*opt); 是否有任何保證,斷言總是會有效嗎?

    2熱度

    1回答

    我的環境是Visual Stuido 2013,VC12,Boost 1.59。 下面的代碼(真正的代碼,最小的攝製): #include "boost/thread.hpp" #include "boost/optional.hpp" class MyClass { public: template <typename T> operator const T&()

    0熱度

    1回答

    指定結構的可選成員的最佳風格是什麼? 比如我有一個結構: struct B{ public: int x; } struct A{ public: boost::optional<B> b; }; void foo(){ A a; a.b.x = 10; //Runtime exception because a.b is not ini

    5熱度

    4回答

    是否可以通過某種方式實現std :: optional,使用sizeof(std::optional<double>) == 8可以將字符存儲在NAN中,請參閱http://en.cppreference.com/w/cpp/numeric/math/nan?有沒有這樣做的實現?可以通過標準中可用的功能來完成嗎?