มีวิธีตรวจจับในเวลาคอมไพล์หรือไม่ว่าคอมไพเลอร์รองรับคุณสมบัติบางอย่างของ C ++ 11 หรือไม่? ตัวอย่างเช่นสิ่งนี้:
#ifndef VARIADIC_TEMPLATES_SUPPORTED
#error "Your compiler doesn't support variadic templates. :("
#else
template <typename... DatatypeList>
class Tuple
{
// ...
}
#endif
template <typename... Test> struct compiler_must_support_variadic_templates;
ได้ ข้อผิดพลาดทางไวยากรณ์จะเปิดเผยปัญหาอย่างรวดเร็ว (นอกจากข้อความแสดงข้อผิดพลาดที่เหมาะสมจะดีกว่ามาก)