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?有没有这样做的实现?可以通过标准中可用的功能来完成吗?