Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaTemplate/cxx17-inline-variables.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
line wrap: on
line source
// RUN: %clang_cc1 -std=c++17 -verify %s // expected-no-diagnostics template<bool> struct DominatorTreeBase { static constexpr bool IsPostDominator = true; }; extern template class DominatorTreeBase<false>; constexpr bool k = DominatorTreeBase<false>::IsPostDominator; namespace CompleteType { template<unsigned N> constexpr int f(const bool (&)[N]) { return 0; } template<bool ...V> struct X { static constexpr bool arr[] = {V...}; static constexpr int value = f(arr); }; constexpr int n = X<true>::value; } template <typename T> struct A { static const int n; static const int m; constexpr int f() { return n; } constexpr int g() { return n; } }; template <typename T> constexpr int A<T>::n = sizeof(A) + sizeof(T); template <typename T> inline constexpr int A<T>::m = sizeof(A) + sizeof(T); static_assert(A<int>().f() == 5); static_assert(A<int>().g() == 5);