मैं एक पैरामीटर के रूप में एक enum मूल्य के साथ एक वर्ग है। यह एक सदस्य है m_ConsistencyErrors
जो एक है std::set
। मैं enum पैरामीटर के मूल्य के आधार पर निर्माण इस सदस्य के प्रकार सेट करना चाहते हैं।
यदि TestType मूल्य है
MSG123_CONSISTENCY_TEST
मैं चाहूँगा m_ConsistencyErrors प्रकार की होनी चाहिएstd::set<EnMsg123Param>
यदि TestType मूल्य है
MSG5_CONSISTENCY_TEST
मैं चाहूँगा m_ConsistencyErrors प्रकार की होनी चाहिएstd::set<EnMsg5Param>
वहाँ इस लक्ष्य को हासिल करने के लिए या मैं एक और समाधान खोजना चाहिए एक साफ रास्ता नहीं है।
class CMsgConsistencyTest // : public CTestBase // left out for simplicity
{
enum EnTests
{
MSG123_CONSISTENCY_TEST,
MSG5_CONSISTENCY_TEST,
};
enum EnMsg123Param
{
Msg123_1,
Msg123_2
};
enum EnMsg5Param
{
Msg5_1,
Msg5_2
};
public:
CMsgConsistencyTest(const EnTests TestType) // : CTestBase(TestType) // left out for simplicity
{
if (TestType == MSG123_CONSISTENCY_TEST)
{
ParameterType = EnMsg123Param; // pseudo code
}
else if (TestType == MSG5_CONSISTENCY_TEST)
{
ParameterType = EnMsg5Param; // pseudo code
}
}
private:
template<typename ParameterType>
std::set<ParameterType> m_ConsistencyErrors;
};