diff --git a/include/armadillo_bits/arma_config.hpp b/include/armadillo_bits/arma_config.hpp index 3670199e..139efa7d 100644 --- a/include/armadillo_bits/arma_config.hpp +++ b/include/armadillo_bits/arma_config.hpp @@ -181,6 +181,13 @@ struct arma_config #endif + #if defined(ARMA_HAVE_CXX23) + static constexpr bool cxx23 = true; + #else + static constexpr bool cxx23 = false; + #endif + + #if (!defined(ARMA_DONT_USE_STD_MUTEX)) static constexpr bool std_mutex = true; #else diff --git a/include/armadillo_bits/compiler_check.hpp b/include/armadillo_bits/compiler_check.hpp index 8a653d24..b6fbd8a6 100644 --- a/include/armadillo_bits/compiler_check.hpp +++ b/include/armadillo_bits/compiler_check.hpp @@ -20,6 +20,7 @@ #undef ARMA_HAVE_CXX14 #undef ARMA_HAVE_CXX17 #undef ARMA_HAVE_CXX20 +#undef ARMA_HAVE_CXX23 #if (__cplusplus >= 201103L) #define ARMA_HAVE_CXX11 @@ -37,6 +38,10 @@ #define ARMA_HAVE_CXX20 #endif +#if (__cplusplus >= 202302L) + #define ARMA_HAVE_CXX23 +#endif + // MS really can't get its proverbial shit together #if defined(_MSVC_LANG) @@ -59,6 +64,11 @@ #define ARMA_HAVE_CXX20 #endif + #if (_MSVC_LANG >= 202302L) + #undef ARMA_HAVE_CXX23 + #define ARMA_HAVE_CXX23 + #endif + #endif diff --git a/include/armadillo_bits/debug.hpp b/include/armadillo_bits/debug.hpp index 7a0b95c2..b436c432 100644 --- a/include/armadillo_bits/debug.hpp +++ b/include/armadillo_bits/debug.hpp @@ -263,8 +263,7 @@ arma_print(const T1& x, const T2& y, const T3& z) // // arma_sigprint -//! print a message to the log stream with a preceding @ character. -//! by default the log stream is cout. +//! print a message to the cerr stream with a preceding @ character. //! used for printing the signature of a function //! (see the arma_extra_debug_sigprint macro) inline @@ -1424,6 +1423,7 @@ arma_assert_atlas_size(const T1& A, const T2& B) out << "@ arma_config::cxx14 = " << arma_config::cxx14 << '\n'; out << "@ arma_config::cxx17 = " << arma_config::cxx17 << '\n'; out << "@ arma_config::cxx20 = " << arma_config::cxx20 << '\n'; + out << "@ arma_config::cxx23 = " << arma_config::cxx23 << '\n'; out << "@ arma_config::std_mutex = " << arma_config::std_mutex << '\n'; out << "@ arma_config::posix = " << arma_config::posix << '\n'; out << "@ arma_config::openmp = " << arma_config::openmp << '\n';