Mercurial > hg > CbC > CbC_llvm
view clang/test/SemaTemplate/cxx17-inline-variables.cpp @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | 1d019706d866 |
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);