boost-variant相关内容

为什么boost :: variant不提供operator!=

给定两个完全相同的 boost :: variant 实例 a code> b ,则允许使用表达式 (a == b) / p> 但 (a!= b) 似乎未定义。为什么是这样? 解决方案 我认为它只是没有添加到库中。 Boost.Operators不会真正帮助,因为任一变体都将从boost :: operator :: equality_comparable派生。 David Pier ..
发布时间:2016-10-20 09:11:51 C/C++开发

如何boost :: variant和boost ::任何工作?

``````````````````````````````在我正在开发的项目中,我目前使用一个标记的联合。我想使用其他的东西,因为C ++的联合不允许你使用对象的构造函数,析构函数或重载的赋值运算符。 我查询任何和变体的大小,并与他们做了一些实验。在我的平台,variant取其最长的类型加上8字节的大小:我认为我只是8字节的类型信息,其余的是存储的值。另一方面,任何只需要8个字节。因为我在 ..
发布时间:2016-10-14 22:51:36 C/C++开发

生成与int和字符串参数向量

我想使用Boost库(增强::变种)在C ++中定义是否整数和字符串的向量。我奋力填补了这样的载体 - 能有人会发布一个例子code。与填充与整数字符串一个vector 和的使用Boost库的并读取载体或其他元素直接我一个例子。 我搜索与踏歌的boost ::变种的SO文章,但无法找到我想要的东西。 解决方案 下面是一些例子(从内存中写入): 的typedef的boost ::变体LT ..
发布时间:2016-08-12 19:10:47 移动开发

如何解决配套升压变的返回类型?

链接的问题 假设我们有: 的boost ::变体LT;为零,标准::字符串,string_struct> 和结构string_struct { string_struct(标准::字符串常量和放大器;名称=“”):姓名(名称){} 性病::字符串名称; } 有一些方法,以prevent错误地推断错误的提振变量类型的编译器? 更多从理论上说,如果我们有一个的boost ..
发布时间:2016-08-12 19:03:52 C/C++开发

使用boost升压变型::输出::精神::因果报应

我试图输出参数,它们可以是单个参数或参数的向量。下面code不,我想它做什么: 的#include<&iostream的GT; #包括LT&;串GT; #包括LT&;升压/ variant.hpp> #包括LT&;升压/精神/有/ karma.hpp> 命名空间因缘=的boost ::精神::人缘;的typedef的std ::矢量<&INT GT;参数列表; TYPED ..
发布时间:2016-08-12 19:00:56 C/C++

我如何使用含有状态变量的类升压游客概念?

我试图使用boost :: static_visitor实现对影响某些变量的状态一个boost :: variant类型的行动。我的方法是包含所有在我的命令访问类的状态变量,但似乎这是不可能的。 下面是我的code例如: 的#include<串GT; #包括LT&;&sstream GT; #包括LT&;矢量> #包括LT&;升压/ variant.hpp> #包括LT&;升 ..
发布时间:2016-08-12 19:00:00 C/C++开发

提振精神和抽象语法树设计

我使用的是来自齐灵升压解析VRML 1.0。有一个叫分离,并立即分离下,许多不同类型的节点可以保持一组节点。 AST是基于Boost.Variant到目前为止期待冗长。我接近20击球类型的变体的限制。我知道我能延长一个类型的变种有一些,但我敢肯定,必须有一个更好的方式来设计这个。想法表示欢迎。 的typedef的boost ::变体LT; 零, Coordinate3, ..

通用功能转换的boost ::任何提振::变种

假设你有一个的boost ::任何对象和的boost ::变种对象。 我在寻找一个泛型函数转换,带有一个模板参数T是一个专门的的boost ::变种例如: 的boost ::变种< INT,标准::字符串> 和神奇的的boost ::任何转换为之一可用的类型给定的的boost ::变种。 模板< T> ŧ转换(常量的boost ::任何和放大器;任意){ //一些 ..
发布时间:2016-08-12 18:43:58 C/C++开发

升压变暧昧建设

升压变的文件接受任意类型的构造以下称 模板< typename的T>变种(T&安培;操作数); 要求: T必须明确地转换为有界类型之一(即T1,T2等) 同样是构造函数接受真正的常量T&安培; 和 T&放大器;&安培; 。因此,我希望下面的code将不能编译:的boost ::变体LT;的std ::字符串,布尔> V =“文本”; 不过,code编译和 v 成为 ..
发布时间:2016-08-12 18:30:41 C/C++开发

促进共同方法变异简单的调用

我有只有一个可以设置两个指针,所以我使用boost ::变种考虑,说:的boost ::变体LT; shared_ptr的<&类型1 GT; shared_ptr的< 2型>> 。 1型和2是不同的,但是它们共享某些功能。大公例如,两者有方法 isUnique设置。 如果我有code,检查初始化: ASSERT(TYPE1 = nullptr || TYPE2 = n ..
发布时间:2016-08-12 18:30:19 C/C++开发

迭代器的boost ::变种

海兰那里, 我试图去适应现有的code,以提高::变体。该想法是使用升压::变体为多相载体。的问题是,code使用迭代的其余部分来访问向量的元素。有没有办法使用了boost ::变种迭代的方式? 我试过 的typedef的boost ::变体LT;富,酒吧和GT;变体; 的std ::矢量<变形例>袋; 的std ::矢量<变形例>:迭代它; 对于(IT = b ..
发布时间:2016-08-12 18:17:38 C/C++开发

什么是升压相当于::变体STD C ++?

我要寻找替代C风格的结合。提高::变种就是这样的一个选项。是否有性病ç什么++? 工会{ INT I; 双D; } 解决方案 由于一些评论说:不,有标准C无升压变酷似++。也许在几年内就会有,但为什么要等 - 使用升压变今天 的编辑(四年后,2016年):的在C ++ 17会有的std ::变种。相似但不完全相同的boost ::变种。所以,当你的编译器支持C ++ 17,你 ..
发布时间:2016-08-12 18:10:53 C/C++开发

读从istream的一个boost :: variant类型

我要通过的boost ::变种,不知道如何才能让下面的工作? 的typedef的boost ::变体LT; INT,标准::字符串>设为myVal; 诠释的main() {的std ::矢量<&设为myVal GT; VEC;性病:: ifstream的鳍(“TEMP.TXT”);//下面如何能够实现? 性病::复制(的std :: istream_iterator<&设为my ..
发布时间:2016-08-12 18:08:13 C/C++开发

C ++:嵌套地图

下面的定义是: 结构NMAP; NMAP结构:地图<字符串,提振::变体LT;字符串,NMAP * GT;> {}; 下面的最后一行不起作用: NMAP my_map; my_map [“一”] =“B”; my_map [“C”] =新的nmap; my_map [“C”] [“D”] =“E”; 什么我需要补充,为了这个工作? 解决方案 我建议要么去为一个小 ..
发布时间:2016-08-12 18:07:47 C/C++开发

构建含有第n型中的变体类型索引的值的升压变体?

我要构建的boost ::变种取值包含缺省构造值,具有类型的索引指定的 - 不超过类型的索引写我自己的switch语句 我想这个的必须的可能,不知何故,与MPL? 要澄清,虽然,该指数的不是编译时间常数前pression。 用例是,我需要构建稍后将包含正确的数值1替换变体,但在这一点上,我只知道类型的索引。把它看成是一个懒惰的deserialisation问题。 解决方案 您需要使用 ..
发布时间:2016-08-12 18:05:40 C/C++开发

为什么提振精神:: ::气::解析()未设置此​​的boost ::变种的价值?

当试图解析文本一个boost ::变种,变种的价值没有得到改变。 自己的解析器似乎做工精细,所以我的假设是,我做错事的变种code。 我使用升压1.46.1和以下code编译在的Visual Studio 2008。 1日更新 hkaiser指出,规则和语法模板参数不能是变,但变()。结果 这有一点“进一步”,因为我现在在 boost_1_46_1编译错误\\提升\\变种\\ varia ..
发布时间:2016-08-12 17:59:33 C/C++开发