Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用#定义bool bool";当我将鼠标悬停在bool上时,QtCreator说-我跟踪到boost::asio中_C++_Boost - Fatal编程技术网

C++ &引用#定义bool bool";当我将鼠标悬停在bool上时,QtCreator说-我跟踪到boost::asio中

C++ &引用#定义bool bool";当我将鼠标悬停在bool上时,QtCreator说-我跟踪到boost::asio中,c++,boost,C++,Boost,我注意到,bool的突出显示颜色与QtCreator中的其他类型不同: 只有在包含某些标题时才会出现这种情况,最终我将其跟踪到。QtCreator的代码检查器似乎无法手动跟踪定义。我使用的boost版本是boost 1.59 这有什么目的吗?我真的不介意,但将任何东西定义为同一个东西都很奇怪,而不仅仅是一个bool嗯,我搜索了Boost 1.59代码,看看是否可以找到:#define bool bool或#include,但我最终没有找到它们,所以它可能在这些文件中,但很可能在其他地方 这有

我注意到,
bool
的突出显示颜色与QtCreator中的其他类型不同:

只有在包含某些标题时才会出现这种情况,最终我将其跟踪到
。QtCreator的代码检查器似乎无法手动跟踪定义。我使用的boost版本是boost 1.59


这有什么目的吗?我真的不介意,但将任何东西定义为同一个东西都很奇怪,而不仅仅是一个
bool

嗯,我搜索了Boost 1.59代码,看看是否可以找到:
#define bool bool
#include
,但我最终没有找到它们,所以它可能在这些文件中,但很可能在其他地方


这有什么目的吗?我真的不介意,但将任何事物定义为同一事物,而不仅仅是一个布尔,是相当奇怪的

想象一下代码包含如下内容:

#define bool int
// The next line would change the previous definition
#define bool bool
其次是:

#ifndef bool
#elif bool
#endif
// etc..
这将是尝试移植C程序的一种非常丑陋的方式(考虑到C++中不允许重新定义关键字)


这可能来自stdbool.h的include。其中包含此确切内容()。我个人认为这要么是ide/highlighter/parser中的一个bug,要么是有一个包含此头/代码的文件

如果您在这些设置中没有收到警告,则很可能此代码没有实际使用,只是解析不正确:

  • (VS)
  • -Wkeyword宏(叮当声)

对于GCC不确定-Wall似乎没有意识到这一点。

确实
boolx=true在你的代码中编译(大写)?@Florisvellman否,“
Bool没有命名类型”
”。为什么会这样想?我认为在C++中用关键字的名字定义宏是一种未定义的行为。不确定宏的值等于它的名称这一事实是否会在这里产生影响…它可能有助于防止一些旧的C头重新定义
bool
#ifndef bool#define bool char
会引起“有趣的”问题),但我不确定它在boost中做了什么。@molbdnilo是的,事实上,它追踪到了著名的图书馆,如boost,这让我感到惊讶,并让我发表了关于它的文章。如果它是在我们的内部来源,我只会问,并可能删除后,与其他人咨询它。但它可能是一些被遗忘的代码或boost源代码中的任何东西。我搜索了当前的boost源代码,在任何地方都找不到
#define bool bool