2013-04-29 18 views
5

私はArduinoをプログラミングすることを学んでいますが、私はC++で非常に堅実な背景を持っています。つまり、C++標準ライブラリを使用できないことに失望しました。私はまさにそれがなぜであるかを調べようとしていましたが、AVR-GCCはC++言語標準に準拠していないという唯一のもっともらしい説明です。AVR-GCCの標準準拠

ほとんどのコンパイラには標準からの小さな偏差があることはわかっていますが、AVR-GCCとGCC、Clang、または他のコンパイラ前。非常に重要な機能が完全に欠落しているようなもの、または何か。たとえばstd::vectorを使用できない理由があるに違いありません。何の理由もなく離脱するのはあまりにも便利です。

だから何ですか? AVR-GCC方言の巨大な穴は、C++標準ライブラリをArduinoで使えないものにするものですか?そして私は、好奇心だけではなく、言語に巨大な穴がある場合、私が期待していない未定義の振る舞いにぶつかる前に、それらについて知る必要があるからです。

+0

これはC++であり、すべてのコンプライアンス違反、互換性の欠如、組み込み世界での全面的なサポートなどがあります。これは非常に残念です、私は知っています。新世紀への13年のように、私たちは90年代にいるような気がします。 –

+0

ほとんどの埋め込まれたC++プラットフォームはstdlibに付属していないようですが、だれも本当に誰もそれを使用していないと思われます。 – PlasmaHH

+1

@PlasmaHH:部分的ですが、それは言い訳のようです。 –

答えて

-3

AVR-GCCはclearly the work of hobbyistsです。本質的に、誰も標準ライブラリの実装を書くのは難しい作業です。標準ライブラリを書くことは、デスクトッププラットフォームにとっては些細な作業ではありません.Arduinoの限られた機能だけが難しくなります。

+1

「PROGMEM」が「愛好家」を意味する理由を説明できますか? – angelatlarge

+1

@angelatlarge:良いコンパイラにはキーワードは必要ありません。さらに、良いコンパイラの書き込みは「PROGMEMがどこに行かなければならないかについて厳しくないルールはありません。 CとC++の構文はあいまいかもしれませんが、この規模ではありません。構文は** **あいまいではありません。 – MSalters

+3

私はこの主張によってまだ混乱しています:悪いコンパイラ設計の「揮発性の」証拠のようなものですか? 'register'はどうですか? AVRはRAMはほとんどなく、ROMにデータを格納する能力(さまざまなパフォーマンスコストを伴う)を備えたハーバードアーキテクチャのプロセッサであることを考えると、ハードとファーストのルールとファジーシンタックスについてのあなたの点は分かりません。 – angelatlarge

関連する問題