触发编译器错误
Trigger compiler error
我想为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
金正日
相关文章:
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++,我收到一个无法理解的编译器错误
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 重载方法的方式会在使用临时调用时生成编译器错误
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- 有没有办法让编译器在我放置字符串而不是 nlohmann::json 对象时抛出错误?
- 致命错误 C1001 :vs2017 15.8.4 的内部错误(编译器文件"msc1.cpp",第
- C++2440错误-编译器认为字符串是常量字符
- Clang 错误 – 编译器错误或缺少一些细节?
- 视觉C++ 2017 错误?编译器优化表达式
- 配置:错误:C++编译器无法创建可执行文件
- PHP PDO_ODBC配置:错误:C 编译器无法创建可执行文件
- 致命错误 C1001:内部编译器错误(编译器文件"MSC1.cpp",第 1794 行)
- 错误:编译器限制达到简单hello world程序的堆限制
- c++链接错误:编译器找不到函数的定义
- 生成 CImg 时出现致命错误(编译器限制)
- 抛出对齐类型时出现 Clang 运行时错误.编译器错误