निम्नलिखित कोड पर विचार करें:टेम्पलेट पैरामीटर के साथ डेटा सदस्यों को जोड़ें/निकालें?
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
इस कोड में, टेम्पलेट पैरामीटर AddMembers
जब यह true
है वर्ग के लिए एक समारोह को जोड़ने के लिए अनुमति देते हैं। ऐसा करने के लिए, हम std::enable_if
का उपयोग करते हैं।
मेरा प्रश्न है: डेटा सदस्यों के लिए एक ही संभव है (शायद एक चाल के साथ)? बंद
struct BaseWithVariable { int addedVariable; };
struct BaseWithoutVariable { };
template <bool AddMembers> class MyClass
: std::conditional<AddMembers, BaseWithVariable, BaseWithoutVariable>::type
{
// etc.
};
+++++ 1 सही! सशर्त टेम्पलेट पैरामीटर के साथ मिक्सिन – Viet