Рассмотрим следующие классы:
// Class1.hpp
class Class1 {};
// Class2.hpp
class Class2 {};
// ClassA.hpp
#include "Class1.hpp"
#include "Class2.hpp"
class A {
private:
enum class Enum {
Enum1,
Enum2
};
struct B {
B(Enum argEum) : enumMember{argEnum} {}
Enum enumMember;
};
template <class T>
struct C : public B {}
};
Теперь я хотел бы сделать следующие специализации конструктора C:
C<Class1>::C() : B{Enum::Enum1} {}
C<Class2>::C() : B{Enum::Enum2} {}
Судя по тому, что я пытался, я должен поместить специализации вне определения класса класса А, но я не знаю, как это сделать.