草庐IT

VARIANT_BOOL

全部标签

c++ - 转换 std::vector 为 boost::variant 类型

我如何实现下面的函数来从Value的vector进行转换?到Container?如果不是values的所有成员,我想断言是同一类型,即如果vector包含字符串和整数的混合。这是因为函数的返回值是std::vector。或std::vector.typedefboost::variantValue;typedefboost::variant,std::vector>Container;ContainervaluesToContainer(conststd::vector&values){returnContainer();} 最佳答案

c++ - c/c++ Linux 相当于 "bool DllMain()"- 但我需要将失败返回给 dlopen()

我正在将一个DLL从Windows移植到Linux(实际上是OSX)。我用了这个StackOverflowarticle做那个改变。即我已经将Windows“boolDllMain()”移植到Linux方式:__attribute__((constructor))voiddllLoad();__attribute__((destructor))voiddllUnload();...但两者都是void返回类型。我需要能够执行与Windows相同的操作,并在构造函数中不满足条件时返回FALSE,以便dlopen()失败并且.so不会加载。如何使调用dlopen()失败?

c++ - 函数 bool isnan( … ) 在 C++ 中的定点实现

我正在用C++进行定点实现,我正在尝试定义“非数字”并支持函数boolisnan(…)如果数字不是数字则返回true,否则返回false。有人能给我一些关于如何定义“非数字”并在我的定点数学实现中实现函数boolisnan(…)的想法吗。我读过有关C++Nan的资料,但我无法获得有关如何手动定义和创建函数nan()以在定点实现中使用它的任何来源或引用。有人可以告诉我如何进行或提供一些引用以进行吗?谢谢更新定点header#ifndef__fixed_point_header_h__#define__fixed_point_header_h__#include#include#endif

c++ - 为什么在成功将 bool 字符串值转换为 bool 值时,istringstream eof 标志没有变为真?

我正在学习如何使用istringstream将存储为字符串的值转换为native类型。当存储为字符串的数字成功转换为int或double时,istringstreameof()函数返回true。当存储为字符串的bool值成功转换为bool时,eof()返回false。造成差异的原因是什么?为什么当似乎没有其他字符需要处理时eof()不返回true?转换为bool值的代码:stringvalue="true";istringstreamconverter(value);boolconvertedValue;if(!(converter>>std::boolalpha>>converted

c++ - __sync_val_compare_and_swap 与 __sync_bool_compare_and_swap

我一直在思考这两个函数的返回值。__sync_bool_compare_and_swap函数的返回值似乎有明显的好处,即我可以用它来判断交换操作是否发生。但是,我看不到__sync_val_compare_and_swap的返回值的良好用途。首先,让我们有一个函数签名供引用(来自GCC文档减去varargs):type__sync_val_compare_and_swap(type*ptr,typeoldvaltypenewval);我看到的问题是__sync_val_compare_and_swap的返回值是*ptr的旧值。准确地说,这是在设置了适当的内存屏障后,此函数的实现所看到的

c++ - 来自 Boost.Spirit 语法的属性:来自 std:vector of boost::variant 的错误

我有一个用于读取棋盘游戏位置描述的工作解析器(国际跳棋,officialgrammar):#include#includenamespacex3=boost::spirit::x3;autoconstcolon=x3::lit(':');autoconstcomma=x3::lit(',');autoconstdash=x3::lit('-');autoconstdot=x3::lit('.');autoconstking=x3::char_('K');autoconstcolor=x3::char_("BW");autoconstnum_sq=x3::int_;autoconstnu

c++ - "#define bool bool"当我悬停 bool 时说 QtCreator - 我将其跟踪到 boost::asio

我注意到bool在QtCreator中以不同于其他类型的颜色突出显示:只有在包含某些header时才会发生这种情况,最终我将其追踪到.QtCreator的代码检查器似乎无法手动跟踪定义。我使用的boost版本是Boost1.59。这样做有什么目的吗?我真的不介意,但是为同一事物定义任何东西是相当奇怪的,而不是bool. 最佳答案 好吧,我搜索了Boost1.59代码,看看是否可以找到:#defineboolbool或#include但我最终没有找到它们,所以它可能在这些文件中,但很可能在其他地方。Isthereanypurposef

c++ - 当 -std=c++17 在编译器输出中时,编译器请求通过使用 -std++17 标志为 std::variant 启用 c++17 支持

前段时间我在让std::variant在QtCreator项目中工作时遇到了问题,在这里面临类似的提示:Can'tusec++17featuresusingg++7.2inQtCreator我解决了这个问题,并且在这个项目上已经愉快地工作了一段时间,没有进一步的问题。这是在ubuntu14.04上运行的,使用GCC7.2.0构建,也在clang5.0下构建。两天前,我备份了所有内容,安装了最新的QtCreator,再次安装了我的所有工具(gcc7.2.0和clang5.0),检索了我的项目并尝试构建。构建失败,说明:/usr/include/c++/7.2.0/bits/c++17_w

c++ - bool 位字段与逻辑位掩码或位移 - C++

我有一系列需要很多bool字段的类,大约在4-10个之间。我不想为每个bool值使用一个字节。我一直在研究位域结构,例如:structBooleanBitFields{boolb1:1;boolb2:1;boolb3:1;boolb4:1;boolb5:1;boolb6:1;};但在做了一些研究后,我看到很多人说这会导致内存访问效率低下,不值得节省内存。我想知道这种情况的最佳方法是什么。我应该使用位字段,还是使用带位掩码的字符(and'sandors)存储8位?如果第二种解决方案是移位更好还是使用逻辑更好?如果有人可以评论他们会使用什么方法以及为什么它真的能帮助我决定我应该走哪条路。提

c++ - "if (var)"使用数字转换而不是 bool 值

为什么if(var)...使用数字转换而不是bool值?我有一个实现两者的类:operatorint(){....}operatorbool(){....}但是如果我使用:if(my_class_var)....;然后使用int转换而不是boolean?!!?!编辑:正如versedmarald所说,这是正确的。我发现了不同之处。我实际上使用的是:operatorint(){....}operatorbool()const{...}还是被迷住了,为什么不一样?gcc版本4.6.2 最佳答案 如果你说的是真的,我认为你的编译器违反了标