クラステンプレート "TControl"から継承しようとしましたが、派生クラス "TControlML"には基本クラスのコンストラクタが表示されません。私は関連する記事を読んだが、それでも原因を見ていない。私は、最小限の例を作っていますテンプレートから派生したクラスにコンストラクタが表示されない
using namespace std;
class MeshLink
{
};
template<typename WU_TYPE>
class TControl
{
public:
TControl(std::vector<WU_TYPE>& vWorkunits_):
sTodo(vWorkunits_.begin(),vWorkunits_.end())
{}
std::set<WU_TYPE> sTodo;
};
class TControlML:public TControl<MeshLink*>
{
public:
};
int main()
{
vector<MeshLink*> vMeshLinks;
TControl<MeshLink*> ctrl(vMeshLinks); // Good
TControlML ctrl2(vMeshLinks); // Fails
}
GCCは言う:
test.cpp:35:29: error: no matching function for call to ‘TControlML::TControlML(std::vector<MeshLink*, std::allocator<MeshLink*> >&)’
TControlML ctrl2(vMeshLinks); // Fails