私は頭が折れないような問題があります。 Iは、(後にラムダが使用する)コールバックのための2つのタイプの定義を有する:特定のタイプのテンプレートの引数のみを配列に追加します
Payload1とPayload2イベントペイロードデータを含む異なる構造体であるようtypedef std::function<void(Payload1 Payload)> Callback1;
typedef std::function<void(Payload2 Payload)> Callback2;
。
TArray<Callback1> Callback1Array;
TArray<Callback2> Callback2Array;
そして、それが収まる配列にコールバックを追加する必要があり、テンプレート機能:それから私は、コールバックを含む2つのアレイを(私が使用しているとして、それらはTArraysあるが、それは問題ではありません)、得ましたin:
template<typename CallbackType>
void SubscribeToEvent(CallbackType Callback)
{
// If CallbackType is Callback1
Callback1Array.Add(Callback);
// Else If CallbackType is Callback2
Callback2Array.Add(Callback);
}
私がコメントに書いたステートメントをどのように表現できるかわかりません。 Callback1配列にCallback2型を追加しようとすると明らかに失敗するので、型をチェックして適切な配列に追加するだけで、他の型にも追加しようとはしません。これは可能ですか?
ありがとうございました:)
てください[MCVE] –
@PasserByがこの書き込み作業が必要allthough、それは:)私のフレームワークは、より読みやすくなり、より良い1つの:) – iRedCraft