visitor-pattern

    0

    1答えて

    私はvisitorパターンを使用して、さまざまなASTの問題を処理していますが、実際にうまくいくことが分かります。たとえば、私は静的な型をチェックするためにそれを使用しています。これは正確な型を探すときにはうまくいきますが、派生クラスには当てはまりません。つまり、を継承するDerivedがある場合、DerivedオブジェクトがBaseであるかどうかを確認することができません。 #include <

    1

    1答えて

    私は、解析ツリーのXML出力を生成するVisitorクラスをC++で実装しています。 Windows上でClionでコンパイルすると、コードがコンパイルされますが、期待される結果が出力された後に実行されるとクラッシュします。エラーコードは、この プロセスは、私は(Clionなし)のgccを使用してコンパイルしようとすると、私はエラーメッセージ は未定義取得終了コード-1073741819(0xc0

    1

    1答えて

    私はこれに尋ねた。question約std::variant。バリアントが保持する型がすべてstd::coutで印刷可能であることを考慮すると、訪問者を実装する簡単な方法はありますか? Hereたとえば、各タイプをカバーする複数のラムダがありますが、すべて同じことをします(std::stringを除く):std::cout << arg << ' ';。私の自己を繰り返さない方法はありますか? s

    -1

    1答えて

    コードをシンプルにするために頻繁に使用するパターンがあります。これは、訪問者パターンを利用してカスタムデータを保持する列挙型のPower Enumを呼び出すのが好きです。 Javaの例を次に示します。 import java.security.SecureRandom; import java.util.UUID; import java.util.stream.IntStream; pu

    3

    2答えて

    私はC#でビジターパターンを実装しています。私が持っていることは次のとおりです。クラスの 階層: public class A { public virtual void Accept(Visitor visitor) { visitor.Visit(this); } } public class B : A { public overrid

    1

    1答えて

    Java.g4(Antlr4 githubサイトの)文法とAntlr4を使用してJavaクラスファイルを解析しようとしています。私は解析しようとしています typeArguments : '<' typeArgument (',' typeArgument)* '>' ; typeArgument : typeType | '?' (('extends' | 'super') type

    -1

    1答えて

    私はVisitorパターンを調べています。私はすでにこれを修正する方法を知っていることに注意してください.Virtualメソッドを使用し、Visitorインターフェイスをさまざまなオーバーロードで拡張します。私は、C#の型とオーバーロードの解像度をよりよく理解しようとしています。 Acceptメソッドが呼び出されると、テストメソッドでは、常にBinaryOperatorの代わりにパラメータタイプ