汎用インターフェースを作成したい。私はstd :: vector内の異なるオブジェクトのリストが必要です。これらのオブジェクトの各々は、他のタイプであるが、同じインターフェースを有する。例えば異なるタイプの汎用インターフェース
:
struct Base
{
std::string name;
virtual void doWork(???, ???);
virtual void print(???,???);
};
struct ObjA : Base
{
void doWork(???,???) override
{
std::cout << "Hello\n";
};
void print(???,???) override
{
std::cout << "Hey\n";
};
}
struct ObjB : Base
{
void doWork(???,???) override { std::cout << "Hello\n"; };
void print(???,???) override { std::cout << "Hey\n"; };
}
しかし、私は???、???の種類を知りません。テンプレートと組み合わせてバーチャルを使用することはできないので、私はエレガントな方法を探しています。
これをコンパイル時に解決することは可能ですか?
少なくとも1つの具体的な使用例を記載してください。今のところ(そのような例がない)、不明確なものとして閉じることになった。 –