2017-07-20 1 views
-1

上級者がRuby TK GUIプログラム全体をQML & C++に変更するようお願いします。ビジネスロジックやアニメーションをQMLで書くことはできません。彼らは、Imageを表示するためだけにQMLを使用し、これらの画像をC++側(アニメーションさえも)で制御したいと考えています。 最大の問題は、私が入手したRubyプログラムであり、大量かつ複雑なコードだけであり、コードについてのコメントやドキュメントは一切ありません。C++をダックタイピングにする方法

私は単純にRubyをC++の方法で記述しようとしています。しかし、ルビーはダックタイピングです、C++をダックタイピングにする方法はありますか? autoのメンバー変数のようにします。

私はあきらめて辞めるのですか?

+0

'void *'はすべての悪の根源です。 – meowgoesthedog

+1

弱いタイピングをautoキーワードと混同しないでください - コンパイラによって推論できるときに型を保存するためにそこにあります – Jimmy

+1

もっと良い質問は、RubyからC++に小さなコードを移植する方法でしょう。あなたが尋ねる前に試したことを示す。 –

答えて

1

あなたがC++の型安全規則をオフにすることはできませんが、あなたが弱いに導入される(例えばstd::anyとしてvoid*を使用して実装することができる種類の消去技術、と型付け言語に利用できるいくつかのイディオムをシミュレートしようとすることができます今後のC++ 17標準)。

もう1つの選択肢は、std::variant(またはC++ 17でも可)またはQVariantなどのMikeが指摘しているように、Qtを使用しているためです。タグ付き共用体は、変数が保持する可能性がある潜在的な型のリストを知る必要がありますが、本質的に実行時型選択の厳密に型指定されたバージョンであるVisitorパターンでは扱いやすくなります。

私はあきらめて辞める?

の方がいいかもしれません。プログラムを強く型付けされたアルゴリズムに変換することは有利かもしれません。

+1

この質問は 'qt'とタグ付けされています。 Qtには既にQVariantがあることは注目に値すると思います。 。 。 – Mike

+0

@Mikeありがとう、それは私が探しているものです! – Jiu

関連する問題