スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SystemC] 懐かしきハマった記述が C++11では問題なし

先ずは、こちらのコードを。

#include <systemc.h>

SC_MODULE( hoge ){
  sc_in<sc_int<8>> in;

  void process(){
    for(;;) {
      wait();
      sc_int<8> tmp = in.read();
      printf("in = %d\n", tmp.to_int());
    }
  }

  SC_CTOR( hoge )
  {
    SC_THREAD( process );
      sensitive << in;
      // dont_initialize();
  }
};

このコードをコンパイルすると以下のエラーが出ます。(clang-3.3でやった結果)

sc_main.cpp:4:20: error: use of undeclared identifier 'in'
  sc_in<sc_int<8>> in;
                   ^
sc_main.cpp:4:22: error: expected a type
  sc_in<sc_int<8>> in;
                     ^
sc_main.cpp:9:23: error: use of undeclared identifier 'in'
      sc_int<8> tmp = in.read();
                      ^
sc_main.cpp:17:20: error: use of undeclared identifier 'in'
      sensitive << in;
                   ^

これ何が原因かというと

sc_in<sc_int<8>> in;

>>」の部分が、NGなんです。
> >」と空白が必要だったのです。
ところが、これは C++11では問題なしです。
コンパイル時に「-std=c++0x」をつけましょう!


便利〜♪知っていたけど、単純に感動してる。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。