对有这种情况的人: 我在意外使用<密码>my_first_cop:my_second_cop:true取代单纯的true
时,就看到了这一错误。
bool my_var = my_first_scope::my_second_scope::true;
instead of:
bool my_var = true;
这是因为我有一个宏观因素,导致<代码>MY_MACRO(true)扩大至my_first_cop:my_second_cop:true
,错,我实际上叫<>bool my_var = MY_MACRO(true);。
这里是这种范围差错的快速解调:
方案(可上网查阅:):
#include <iostream>
#include <cstdio>
namespace my_first_scope
{
namespace my_second_scope
{
} // namespace my_second_scope
} // namespace my_first_scope
int main()
{
printf("Hello World
");
bool my_var = my_first_scope::my_second_scope::true;
std::cout << my_var << std::endl;
return 0;
}
产出(差错):
main.cpp: In function ‘int main()’:
main.cpp:27:52: error: expected unqualified-id before ‘true’
bool my_var = my_first_scope::my_second_scope::true;
^~~~
通知错误:error: 预期在“true'
之前不合格,在错误下arrow指点。 www.un.org/Depts/DGACM/index_spanish.htm 范围 我刚刚在<代码>true上登出。
在宏观和使用中,我添加(这里是::https://onlinegdb.com/H1eevs58D):
#define MY_MACRO(input) my_first_scope::my_second_scope::input
...
bool my_var = MY_MACRO(true);
我发现这一新错误:
main.cpp: In function ‘int main()’:
main.cpp:29:28: error: expected unqualified-id before ‘true’
bool my_var = MY_MACRO(true);
^
main.cpp:16:58: note: in definition of macro ‘MY_MACRO’
#define MY_MACRO(input) my_first_scope::my_second_scope::input
^~~~~