C ++ Judge versión estándar y compilador

C ++ Judge versión estándar y compilador

Nota: soy original, si encuentras similitudes tu serás responsable de las consecuencias

Entorno de desarrollo

La mayoría de los compiladores admiten

principio

C ++ 20 No estoy seguro sobre el juicio de
clang y gcc__cplusplus

__cplusplusValor de
C ++ 17 201703L
C ++ 14 201402L
C ++ 11 201103L
Por debajo de C ++ 03 199711L

juicio de msvc_MSVC_LANG

_MSVC_LANGValor de
C ++ 17 201703L
C ++ 14 201402L
C ++ 11 201103L
Por debajo de C ++ 03 199711L

Determine el compilador utilizado

Macro
msvc _MSC_VER
sonido metálico __clang__
gcc __GNUC__

lograr

// cpp.hpp
#ifndef CPP_HPP
#define CPP_HPP

#if defined(__clang__) || defined(__GNUC__)

	#define CPP_STANDARD __cplusplus
	
#elif defined(_MSC_VER)

	#define CPP_STANDARD _MSVC_LANG
	
#endif
 
#if CPP_STANDARD >= 199711L

	#define HAS_CPP_03 true
	
#elif CPP_STANDARD >= 201103L

	#define HAS_CPP_11 true
	
#elif CPP_STANDARD >= 201402L

	#define HAS_CPP_14 true
	
#elif CPP_STANDARD >= 201703L

	#defined HAS_CPP_17 true
	
#endif

#endif

En conclusión

Para optimizar el código y la compatibilidad, puede determinar la versión de C ++ utilizada

Supongo que te gusta

Origin blog.csdn.net/m0_47534090/article/details/108591764
Recomendado
Clasificación