Renesas Rulz - Japan
Renesas Rulz - Japan
  • User
    Join or sign in
  • Site
  • Search Japan.RenesasRulz.com
  • User
  • Renesas Rulz
  • FAQ
  • パートナー
  • 半導体セミナ
  • eラーニング
  • ヘルプ
  • More
  • Cancel
  • かふぇルネ
  • がじぇるね
  • English Community
  • More
  • Cancel
がじぇっとるねさすコミュニティ
がじぇっとるねさすコミュニティ
Web Compiler フォーラム what is c++ version?
  • Forums
  • Blog
  • Files
  • がじぇっとるねさす ゆーざー会 - Wiki
  • Tags
  • More
  • Cancel
  • New

 

 GR-SAKURA

 GR-KURUMI

 GR-COTTON

 GR-CITRUS

 GR-PEACH

 GR-KAEDE

 GR-ADZUKI

 GR-LYCHEE

 GR-ROSE

 GR-MANGO(*)

 SNShield

 Web Compiler

 IDE for GR

 TOPPERS関連

 女子美コラボ

 その他

 ※プロデューサミーティング中

 作り方使い方資料

 イベント関連

 作品記事

 体験記事

 その他

 

 ライブラリ

 ツール

 その他・過去ファイル

  • Replies 6 replies
  • Subscribers 280 subscribers
  • Views 7925 views
  • Users 0 members are here
Options
  • Share
  • More
  • Cancel
Related Tags
  • Arudino
  • dht.h
  • DHT22温湿度センサー
  • gr-sakura rtc
  • http_api
  • LCD Driver
  • make
  • webコンパイラ
  • webコンパイラ Mac OS X Mavericks
  • zipアップロード
  • zipファイルインポート
  • ライブラリ
  • ライブラリ、アップロード
Related

what is c++ version?

kawakawa
kawakawa over 3 years ago

C++ versionは11ではなさそうですね。

versionはなんでしょうか?

  • Reply
  • Cancel
  • Cancel
  • fujita nozomu
    fujita nozomu over 3 years ago

    C++11 であるかは

    #include <Arduino.h>
    
    void setup()
    {
        Serial.begin(9600);
        Serial.println(__cplusplus);
    }
    
    void loop()
    {
    }
    

    を実行してターミナル出力の結果を確認すれば分かりますが、makefile や build_result.html を確認しコンパイラのコマンドラインオプションに `-std=XXX' が明示的に指定されていなければ言語仕様は gnu++98 だと思います。

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • kawakawa
    kawakawa over 3 years ago in reply to fujita nozomu
    ありがとうございます。Web CompilerもIDE for GR も「199711」と表示されたのでC+11ではないですね。
    IDE for GR でplatform.local.txtやpreference.txtに「compiler.cpp.extra_flags=-std=gnu++11」を足したり、
    Web CompilerのmakefileでCFLAGS(ここでいいのかさっぱりわかりませんが。。。)に -std=c++11 と足してみましたがダメでした。

    どなたか、c++11でコンパイルするやり方ご存じないでしょうか?
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 3 years ago in reply to kawakawa
    GNURL78のコンパイラのマニュアルには(GNURXも一緒の内容)、以下のように記されておりまして(google翻訳で翻訳したものです)、-std = gnu11を指定すればそうなるようですが、Webコンパイラではmakefileに指定しても、自動生成で上書き消去されてしまうため適用されません。IDE for GRではplatform.txtを編集すれば適用されます。Windowsでしたらe2studioで行うのが比較的簡単かと思います。使用されたことはありますか?

    ーーーーーーーーーーーーーーー
    デフォルトでは、GCCはC言語といくつかの拡張を提供します。 C言語ファミリへの拡張セクションを参照してください。 上記の '-std'オプションを使用すると、選択したC標準バージョンと競合する拡張機能が無効になります。 '-std = gnu90'(GNU拡張機能を備えたC90の場合)、 '-std = gnu99'(GNU拡張機能を使用するC99の場合)または '-std = gnu11'(C11の場合)を使用して、C言語の拡張バージョンを明示的に選択することもできます GNU拡張機能付き)。 デフォルトでは、C言語の方言オプションが指定されていない場合、 '-std = gnu90'となります。 これは将来のリリースでは '-std = gnu11'に変更される予定です。 C99規格の一部である一部の機能は、C90モードの拡張機能として受け入れられ、C11規格の一部である一部の機能は、C90およびC99モードの拡張機能として受け入れられます。
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • fujita nozomu
    fujita nozomu over 3 years ago in reply to Okamiya Yuuki
    デフォルトでは、GCCはC言語といくつかの拡張を提供します。 C言語ファミリへの拡張セクションを参照してください。 上記の '-std'オプションを使用すると、選択したC標準バージョンと競合する拡張機能が無効になります。 '-std = gnu90'(GNU拡張機能を備えたC90の場合)、 '-std = gnu99'(GNU拡張機能を使用するC99の場合)または '-std = gnu11'(C11の場合)を使用して、C言語の拡張バージョンを明示的に選択することもできます GNU拡張機能付き)。 デフォルトでは、C言語の方言オプションが指定されていない場合、 '-std = gnu90'となります。 これは将来のリリースでは '-std = gnu11'に変更される予定です。 C99規格の一部である一部の機能は、C90モードの拡張機能として受け入れられ、C11規格の一部である一部の機能は、C90およびC99モードの拡張機能として受け入れられます。

    ↑ は全部 C 言語の話で、C++ のは ↓ です。

    2.2 C ++言語
    GCCはオリジナルのISO C ++標準(1998)をサポートし、第2のISO C ++標準(2011)の実験的サポートを含んでいます。
    元のISO C ++標準はISO標準(ISO / IEC 14882:1998)として公開され、2003年に発行された技術コリジェンダ(ISO / IEC 14882:2003)によって改訂されました。これらの標準は、それぞれC ++ 98およびC ++ 03と呼ばれます。GCCはC ++ 98の大部分を実装しています(export 注目すべき例外です)。GCCでこの標準を選択するには、オプション '-ansi'、'-std = c ++ 98'、または'-std = c ++ 03'; 標準によって要求されるすべての診断を取得するには、 - ペデニャン'(または' - 恒常的な誤りあなたが警告ではなくエラーになることを望むならば)。
    改訂されたISO C ++標準は2011年にISO / IEC 14882:2011として発行され、C ++ 11と呼ばれています。発行前は一般的にC ++ 0xと呼ばれていました。C ++ 11にはC ++言語のいくつかの変更が含まれていますが、そのほとんどはGCCの実験的なC ++ 11モードで実装されています。実験的なC ++ 11モードで利用可能なC ++ 11の機能については、http://gcc.gnu.org/projects/cxx0x.htmlを参照してください。GCCでこの標準を選択するには、オプション '-std = c ++ 11'; 標準によって要求されるすべての診断を取得するには、 - ペデニャン'(または' - 恒常的な誤りあなたが警告ではなくエラーになることを望むならば)。
    C ++標準の詳細については、ISO C ++委員会のWebサイト(www.open-std.org/.../)を参照してください。
    デフォルトでは、GCCはC ++言語の拡張を提供しています。See section C ++の方言を制御するオプション。'-std'オプションは、これらの拡張機能を無効にします。また、C ++言語の拡張バージョンを明示的に '-std = gnu ++ 98'(GNU拡張機能を備えたC ++ 98の場合)または'-std = gnu ++ 11'(GNU拡張を伴うC ++ 11の場合)。デフォルトでは、C ++言語の方言オプションが指定されていない場合、-std = gnu ++ 98'。

    # 「ペデニャン」? 妖怪ウォッチかな??

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Okamiya Yuuki
    Okamiya Yuuki over 3 years ago in reply to fujita nozomu
    失礼しました。C++でしたね。
    IDE for GRのplatform.txtに-std=gnu++11を付加して試してみました。ボードはGR-ADZUKI(RL78)で行いました。RXでも同様と思います。

    C++11が適用されたか以下のサイトのソースを参考にしてます。
    kaworu.jpn.org/.../C 11

    platform.txtの以下のC++用コンパイルレシピにオプションを追加しました。
    ## Compile c++ files
    recipe.cpp.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.c.flags} {build.extra_flags} -std=gnu++11 -c -x c++ "{source_file}" -o "{object_file}"

    結果としては以下のソースが無事にコンパイルできることを確認できました。Webコンパイラについては、コンパイラオプションの追加ができるよう検討していきたいと思います。

    class C {
    int i;
    public:
    C (int ia) : i(ia) {}
    C () : C (123) {}

    };
    void setup(){
    struct X { int n; };
    constexpr X x = {123};
    int a[x.n] = { 1 };
    }

    void loop(){
    C c;
    }
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • kawakawa
    kawakawa over 3 years ago in reply to Okamiya Yuuki
    Okamiya、fijitaさんありがとうございます

    今回はPCはmac、ボードはGR-COTTONだったので、
    /Applications/IDE4GR.app/Contents/Java/hardware/arduino/rl78g13/platform.txt
    を修正しました。
    recipe.cpp.o.patternの末尾に-std=gnu++11
    をつけるとscoped enumの代入がエラーになりませんでした

    >Webコンパイラについては、コンパイラオプションの追加ができるよう検討していきたいと思います。

    ぜひ、よろしくお願いします
    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
サイト使用条件
プライバシーポリシー
お問い合わせ
© 2010-2020 Renesas Electronics Corporation. All rights reserved.