diff --git a/configure.ac b/configure.ac
index 90c042e..b5bf97a 100644
AX_CHECK_COMPILE_FLAG([-Wc++98-compat -Wc++98-compat-pedantic], [CXXFLAGS+=" -Wc++98-compat"], [])
- AX_CXX_COMPILE_STDCXX_11([ext], [optional])
+ [AS_HELP_STRING([--enable-cxx11],
+ [enable C++11 for C++ compiler [default=no]])],
+ [zmq_enable_cxx11=$enableval],
+ [zmq_enable_cxx11="no"])
+ if test "x$zmq_enable_cxx11" != "xno"; then
+ AX_CXX_COMPILE_STDCXX_11([ext], [mandatory])
+ AC_DEFINE(ZMQ_USE_CXX11, 1, [Enable C++11])
# Check whether to build a with debug symbols
diff --git a/perf/benchmark_radix_tree.cpp b/perf/benchmark_radix_tree.cpp
index efc889c..4cfd4e8 100644
--- a/perf/benchmark_radix_tree.cpp
+++ b/perf/benchmark_radix_tree.cpp
along with this program. If not, see <http://www.gnu.org/licenses/>.
-#if __cplusplus >= 201103L
+#if defined(ZMQ_USE_CXX11)
#include "radix_tree.hpp"
diff --git a/src/atomic_counter.hpp b/src/atomic_counter.hpp
index 3f62f6f..e1c9600 100644
--- a/src/atomic_counter.hpp
+++ b/src/atomic_counter.hpp
#if defined ZMQ_FORCE_MUTEXES
#define ZMQ_ATOMIC_COUNTER_MUTEX
-#elif (defined __cplusplus && __cplusplus >= 201103L) \
+#elif defined(ZMQ_USE_CXX11) \
|| (defined _MSC_VER && _MSC_VER >= 1900)
#define ZMQ_ATOMIC_COUNTER_CXX11
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
diff --git a/src/atomic_ptr.hpp b/src/atomic_ptr.hpp
index 7b34500..e85c9f8 100644
#if defined ZMQ_FORCE_MUTEXES
#define ZMQ_ATOMIC_PTR_MUTEX
-#elif (defined __cplusplus && __cplusplus >= 201103L) \
+#elif defined(ZMQ_USE_CXX11) \
|| (defined _MSC_VER && _MSC_VER >= 1900)
#define ZMQ_ATOMIC_PTR_CXX11
#elif defined ZMQ_HAVE_ATOMIC_INTRINSICS
diff --git a/src/blob.hpp b/src/blob.hpp
index c14633c..66a5171 100644