我当时正在为嵌入式系统编写一个库,但碰到了不容易找到的STL标准库。
但是我收到的最糟糕的消息是编译器没有异常支持。Atmel参考手册显示此
为什么不支持嵌入式环境中的异常?
很简单,就不可能使用许多用C ++编写的库。C ++与异常紧密联系在一起,就像与new运算符一样!
显然,只有生产该编译器的人才能真正回答该问题。
我的最佳猜测是,异常既耗时又耗时(代码抛出时,时间只是一个真正的问题,但是展开表始终需要空间,并且很容易与整个代码的大小相同)编译后的代码,加上“相当难以实现”,对于编译器开发人员来说,它可能不是列表上的最高项目,因此尚未实现。无论将来是否会出现,显然取决于Atmel或他们转包给他们来编译器的人。
我不是Atmel C ++实现的专家,但是如果编译器支持throw
,我会感到非常惊讶,但是不支持try/catch
-因为在尝试将加热器固定在桑拿房中时,这和巧克力螺丝刀一样有用。卡在充分的热量。
如果使用-fno-exceptions
,则如果throw
代码中包含任何内容,则编译器将出错。STL可以用-fno-exceptions
-编译,因为这就是我编译编译器代码的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句