Qt ライブラリには、独自の前処理 moc コンパイラを使用した高度なメタプログラミング機能が含まれています。それを介してある種のミックスインを作成することは可能ですか?たとえば、QString があり、既存のコードをサブクラス化および変更せずにメソッドを追加したいと考えています。Qtにはそのようなソリューションがありますか?
最も一般的な定義によると、moc コンパイラがメタプログラミングと見なされないことは確かです。
さらに、それを使用してクラスにメソッドを追加することはできません。
実際、C++ では、クラスの宣言の外にメソッドを追加することはできず、moc (またはその他の QT ユーティリティ) は実際にクラスの定義に触れることはありません。いくつかのメタ情報と、シグナルとスロットのメカニズムを処理する追加のコードを追加するだけです。これは、実際のメタプログラミングとはほとんど関係ありません。