- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个关于 boost::assign_list 的问题
struct AClass{
AClass();
};
struct BClass{
BClass();
};
typedef AInfo{
string infoname;
AClass m_nAClass;
BClass m_nBClass;
};
typedef list<AInfo> listOfAInfo;
listOfAInfo m_mlistOfAInfo =
boost::assign::list_of("AInfoName1", AClass(), BClass() );
如何为结构初始化 map_lists 数组。这是遗留代码的一个版本,其中一些类被定义为具有构造函数的结构。
谢谢,开发包
最佳答案
我不确定“其中一些类被定义为具有构造函数的结构” 是什么意思。
我看到的是聚合,即使在 C++03(或 C++98 IIRC)中也可以使用聚合初始化语法进行初始化:
AInfo obj = { "AInfoName1", AClass(), BClass() };
也许你可以使用
typedef std::map<int, AInfo> listOfAInfo;
listOfAInfo m_mlistOfAInfo =
boost::assign::map_list_of
( 1, { "AInfoName1", AClass(), BClass() })
( 2, { "AInfoName2", AClass(), BClass() });
或
typedef std::list<AInfo> listOfAInfo;
listOfAInfo m_mlistOfAInfo =
boost::assign::list_of
( AInfo { "AInfoName1", AClass(), BClass() })
( AInfo { "AInfoName2", AClass(), BClass() });
这里是 Live On Coliru (c++11)。
似乎您不能使用统一初始化语法 (AInfo {...}
),它与聚合初始值设定项 = { ... }
略有不同) 和 Boost Assign,因为编译器不知道你在初始化什么,这与上面显示的 obj
声明不同。
关于c++ - Boost 为结构分配 list_of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858761/
我必须使用跨平台代码。现在,我一直在使用 VS2012,它不支持 C++11 统一初始化。所以,我正在使用 boost::list_of。 对于简单的情况,这是可行的。但是,对于稍微复杂的数据结构,这
我有一个关于 boost::assign_list 的问题 struct AClass{ AClass(); }; struct BClass{ BClass(); }; typedef AInfo{
是一个文档,描述了 boost 的 list_of internally 是如何工作的转换为其他集合? 具体来说,adapter_converter和converter是哪个角色来填充隐式转换过程的。
我在使用以下结构时遇到问题: struct A { int min_version; int max_version; std::vector nodes; A(s
我想使用 boost 的 list_of初始化 vector ,但似乎 vector 以整数值结尾。 我从这里的例子开始:http://www.boost.org/doc/libs/1_55_0b1/
这样编译: std::vector value = boost::assign::list_of(1)(2); 但不是这个: Constructor(std::vector value) { } Co
我正在尝试使用 boost::assign::list_of() 在类中声明静态集。 MyClass.h class MyClass { public: static std:
我正在尝试将一个项目从 VS2008 转换为 2010,但由于添加了移动构造函数而遇到了问题(并且可能是因为这里有嵌套的 list_of)。以下代码片段显示了错误(在实际代码中,这些构造用于初始化一些
我的问题很简单:如何为以“List of”开头的任何维基百科页面上的所有列表项返回 JSON 结构?如果通过 Wiki API 不可行,那么将 wiki HTML/XML 解析为我需要的内容的最佳方法
为什么会出现错误:Test::Test: no overloaded function takes 2 arguments class Test { public: Test(const st
给定: typedef boost::variant, std::vector > Container; 如何将 c 初始化为单行? std::vector v = boost::assign::li
这段代码: std::vector(boost::assign::list_of(1)(2)(3)); 给出错误: main.cpp: In member function 'void ::Reque
我不明白为什么这不起作用(Visual C++ 2012): #include #include #include #include using namespace std; int main
这适用于 Visual Studio 2010,但不适用于 2012 Update 2(使用 Boost 1.5.3): vector> data = assign::list_of (assign:
如何使用 boost::assign::list_of 将值放入 std::vector > 类型的对象中?或者您对我如何填充它以进行单元测试有任何其他建议吗? 已更新 我得到 gcc 4.4.2 的
是否可以初始化以下类型的对象: std::deque> 通过 boost::assign::list_of 最佳答案 尝试以下操作: #include #include #include #in
我是一名优秀的程序员,十分优秀!