C++ 如何正确使用C++;在没有中断的情况下切换语句?
我在以下代码段中遇到错误:C++ 如何正确使用C++;在没有中断的情况下切换语句?,c++,c++17,C++,C++17,我在以下代码段中遇到错误: case id_report: if (iM == INITIATE) { *out_MSG = RSRC_UP; return RSRC_UP; } [[fallthrough]]; case id_initiate: if (iMessageType == INITIATE) { *
case id_report:
if (iM == INITIATE)
{
*out_MSG = RSRC_UP;
return RSRC_UP;
}
[[fallthrough]];
case id_initiate:
if (iMessageType == INITIATE)
{
*policyIdx = RSRC_RQST;
*out_MSG = STATUS_RQST;
return STATUS_RQST;
}
[[fallthrough]];
编译后,我得到以下erorr:
MegaUtil.c:915:13: error: expected expression before ‘[’ token
[[fallthrough]];
^
MegaUtil.c:915:15: error: ‘fallthrough’ undeclared (first use in this function)
[[fallthrough]];
似乎我没有正确使用fallthrough。
我该如何解决这个问题
谢谢。我发现我缺少@HolyBlackCat所提到的std=c++17标志。我发现我缺少@HolyBlackCat所提到的std=c++17标志。你在病例id报告后缺少一个冒号。这应该可以解决问题,因为其他一切看起来都很好。我认为这是在这个问题中编写代码片段时的输入错误。如果您正确使用它,我会纠正错误。您是否缺少
-std=c++17
标志,或者您的编译器太旧了?我确实遵循了此文档,但我不确定哪里出了问题。你看,我也做了同样的事情..你在病例id报告后丢失了一个冒号。这应该可以解决问题,因为其他一切看起来都很好。我认为这是在这个问题中编写代码片段时的输入错误。如果您正确使用它,我会纠正错误。您是否缺少-std=c++17
标志,或者您的编译器太旧了?我确实遵循了此文档,但我不确定哪里出了问题。你看,我也这么做了。