title: error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'?
body: <p>This is a followup for <a href="https://stackoverflow.com/q/64281680/3405291">another question</a> which is already resolved. But then, I receive this error:</p>
  <pre><code>error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'?
      !std::is_same_v&lt;typename std::iterator_traits&lt;T&gt;::value_type, void&gt;, O
       ~~~~~^~~~~~~~~
            is_same
  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:831:61: note: 'is_same' declared here
  template &lt;class _Tp, class _Up&gt; struct _LIBCPP_TEMPLATE_VIS is_same           : public false_type {};
                                                              ^
  </code></pre>
  <p>Based on <a href="https://stackoverflow.com/a/64282324/3405291">previous answer</a>:</p>
  <blockquote>
  <p>... it was added in C++14, as were most of the other type trait <code>*_t</code> versions ... C++17 added <code>*_v</code> versions as inline constexpr variables ...</p>
  </blockquote>
  <p>So, <code>is_same_v</code> is added by C++17. But I already add C++14 and C++17 to QMake by:</p>
  <pre><code>CONFIG += c++14
  CONFIG += c++17
  QMAKE_CXXFLAGS += -std=c++14
  QMAKE_CXXFLAGS += -std=c++17
  </code></pre>
  <p>Is it possible that XCode (Clang) lacks some C++17 features? My Xcode version is 9.4.1 and my Clang++ version is:</p>
  <pre><code>$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -v
  Apple LLVM version 9.1.0 (clang-902.0.39.2)
  Target: x86_64-apple-darwin17.7.0
  Thread model: posix
  InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  </code></pre>
  <h2>Code</h2>
  <p>There are both C++14 <code>*_t</code>  type trait versions and C++17 <code>*_v</code> versions in the code which is from a repository with many contributors:</p>
  <pre class="lang-cpp prettyprint-override"><code>template&lt;class T, class O = T&gt;
  using IteratorOnly = std::enable_if_t&lt;
      !std::is_same_v&lt;typename std::iterator_traits&lt;T&gt;::value_type, void&gt;, O
  &gt;;
  </code></pre>
  <h2>Observation</h2>
  <p>When I use <code>CONFIG += c++14</code> in QMake project file, I receive only this error:</p>
  <ul>
  <li><code>enable_if_t</code> is fine and <code>is_same_v</code> is bad</li>
  </ul>
  <blockquote>
  <p>error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'?</p>
  </blockquote>
  <p>When I use <code>CONFIG += c++17</code> in QMake project file, I receive both these error:</p>
  <ul>
  <li>both <code>enable_if_t</code> and <code>is_same_v</code> are bad</li>
  </ul>
  <blockquote>
  <p>error: no template named 'enable_if_t' in namespace 'std'; did you mean 'enable_if'?</p>
  </blockquote>
  <blockquote>
  <p>error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'?</p>
  </blockquote>
  <p>Why?</p>