أين هو Disable_if في C ++ 0x؟
سؤال
تعزيز على حد سواء enable_if
و disable_if
, ، ولكن يبدو أن C ++ 0x يفتقد إلى الأخير. لماذا تم استبعادها؟ هل هناك مرافق برمجة تلوي في C ++ 0x والتي تسمح لي بالبناء disable_if
من ناحية enable_if
?
أوه ، لقد لاحظت ذلك للتو std::enable_if
هو في الأساس boost::enable_if_c
, ، وأنه لا يوجد شيء من هذا القبيل boost::enable_if
في C ++ 0x.
المحلول
في خطر الظهور بالغباء ، فقط افعل !expression
بدلاً من expression
في معلمة قالب BOOL في enable_if
لجعلها تتصرف مثل أ disable_if
؟ بالطبع إذا نجحت هذه الفكرة ، يمكنك التوسع عليها لكتابة فصل مع disable_if
-مثل السلوك؟
حسنًا ، أعتقد أنه يمكنك التنفيذ disable_if
مثله:
template <bool B, typename T = void>
struct disable_if {
typedef T type;
};
template <typename T>
struct disable_if<true,T> {
};
لا تنتمي إلى StackOverflow