その名前をマクロに渡さずに、使用されているクラスの型を使用するマクロが必要です。これを行うために試してみtypedef decltype(*this) my_type;
ましたが、this
非静的メンバー関数内でのみ使用できます。何か案は?
編集 (コメントのコピー):
CRTP を使用してクラスのデータのトリプル バッファリングをシームレスに実装する基本クラスと一連のマクロを作成しました。複雑なのは、トリプル バッファ クラスが別のトリプル バッファ クラスから継承し、実質的に 2 つのベース (マクロに隠されている CRTP ベースと明示的なベース) を持つ場合に発生します。明示的なベースも CRTP ベースの別のインスタンス化から継承するため、派生クラスのメンバー関数は 2 つのベース間で競合します。派生クラス内の関数を再実装して、この競合を自動的に解決するマクロを作成しています。この再実装には、派生クラスの型が CRTP クラスの正しいインスタンス化にアクセスする必要があるため、元の質問です。