title: Specifying a minimum required C++ standard
body: <p>According to the documentation, setting <code>CXX_STANDARD_REQUIRED</code> to <code>ON</code> prohibits the build system from using older C++ standards then the one requested by <code>CXX_STANDARD</code>.</p>
  
  <p>But this leads to "interesting" problems when combined with the WriteCompilerDetectionHeader module. e.g. when offering some form of "forward compatibility":</p>
  
  <p><code>set(CMAKE_CXX_STANDARD 11)</code> and testing for <code>cxx_relaxed_constexpr</code>, then conditionally defining a macro that expands to <code>constexpr</code> leads to compilation errors on GCC 6.3.0 as the requirements of <code>CXX_STANDARD</code> and the usage of the macro are conflicting (the feature header using the actual feature set of the compiler, not the one offered by the compiler when requiring  C++11).</p>
  
  <p>Is there any way to specifying a required minimum C++ standard, without prohibiting more recent standards (e.g. C++ 11 or later)? The only workaround I can currently think about would be to not set <code>CXX_STANDARD</code> and <code>CXX_STANDARD_REQUIRED</code> at all and just "informally" require a minimum version of C++...</p>