私はタイプ Tもパラメータパック Tsの一部であることを確認したい 。 C++ 14ではこれを行うsolutionsがありますが、これをC++ 17で単純化できれば私は迷っています。 がTsに見つからない場合、コンパイラは停止する必要があります(static_assertionは失敗するはずです)。私は折りたたみ式の表現を聞く template<typename... Ts>
class A
C++ 14を使用して、thisの実装を拡張して、外部で呼び出されるObserverCallbackメソッドをサポートしようとしています。 MyClassコンテナは、バリエーションテンプレートによって型が指定されたタプルのベクトルを使用します。ベクトルへのアクセスは、< T>()アクセスを使用して行うことができます。 私が必要とするのは、要素をベクトルに追加するオブザーバを実装することです。要素の
ここに私のコードです: #include <iostream>
#include <variant>
#include <vector>
class A {
public:
virtual void Foo() = 0;
};
class B : public A {
public:
void Foo() override {
std::cout