Maison >développement back-end >C++ >Comment puis-je vérifier la prise en charge du compilateur C 11 ?

Comment puis-je vérifier la prise en charge du compilateur C 11 ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 05:06:101008parcourir

How Can I Check for C  11 Compiler Support?

Vérification de la prise en charge de C 11

En C, déterminer si un compilateur prend en charge des fonctionnalités spécifiques de C 11 est crucial pour garantir la compatibilité. Certaines méthodes existent pour effectuer cette vérification au moment de la compilation, notamment :

Utilisation de la constante __cplusplus

La constante __cplusplus, définie par le préprocesseur, indique la version standard C prise en charge . Par exemple :

#if __cplusplus <= 199711L
  #error This library needs at least a C++11 compliant compiler
#endif

Utilisation de Boost Defines

Boost fournit des définitions (__has_feature(feature_name)) qui permettent de vérifier des fonctionnalités spécifiques de C 11, telles que :

#if __has_feature(cxx_automatic_resource_management)
  // C++11 has automatic resource management
#endif

Exemple : Vérification de Variadic Modèles

Supposons que vous souhaitiez utiliser des modèles variadiques, une fonctionnalité C 11. Vous pouvez vérifier sa prise en charge en utilisant le code suivant :

#ifndef VARIADIC_TEMPLATES_SUPPORTED

#error "Your compiler doesn't support variadic templates.  :("

#else

template <typename... DatatypeList>
class Tuple
{
    // ...
}

#endif

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn