触发编译器错误

Trigger compiler error

本文关键字:错误 编译器      更新时间:2023-10-16

我想为Arduino编写c++代码(实际上是硬件串行部分的扩展)。用户可以在草图中传递设置,如

Serial.begin(9600, SERIAL_8N1);

SERIAL_8N1是一个预处理器常数。但是像SAM8XE这样的一些uart不允许所有选项。这就是为什么我不想触发编译器错误,如果用户试图使用一个无效的选项。因为代码将在微控制器上运行,所以我没有机会引发异常或类似的东西。

是否有一种方法来触发编译器错误在c++与一个有用的帮助文本,如"无效的UART选项"?

如果用户在代码中写入SERIAL_8N1,那么您想要删除编译错误吗?如果是这样,我将定义一个插入无效代码的预处理器宏,如

#define   SERIAL_8N1     this will drop an error

或者你可以使用#error预处理器指令

您可以在编译时使用Boost来通过static_断言。

BOOST_STATIC_ASSERT( condition );
BOOST_STATIC_ASSERT_MSG( condition, "Not supported" );

更多详细信息请查看以下链接:http://www.boost.org/doc/libs/1_55_0/doc/html/boostrongtaticassert.html

金正日