diff options
author | Ian Taylor <ibtaylor@gmail.com> | 2019-06-06 17:16:08 -0400 |
---|---|---|
committer | Anna Gringauze <annagrin@microsoft.com> | 2019-06-06 14:16:08 -0700 |
commit | 66809c6852a0250243db893ab5460bfdace063c4 (patch) | |
tree | cd723c83b572a8426898d7a3630c9871b4abd347 /include | |
parent | b74b286d5e333561b0f1ef1abd18de2606624455 (diff) | |
download | platform_external_Microsoft-GSL-66809c6852a0250243db893ab5460bfdace063c4.tar.gz platform_external_Microsoft-GSL-66809c6852a0250243db893ab5460bfdace063c4.tar.bz2 platform_external_Microsoft-GSL-66809c6852a0250243db893ab5460bfdace063c4.zip |
make TypeListIndexer constexpr (#733)
Diffstat (limited to 'include')
-rw-r--r-- | include/gsl/multi_span | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/include/gsl/multi_span b/include/gsl/multi_span index f1a909e..0c1506e 100644 --- a/include/gsl/multi_span +++ b/include/gsl/multi_span @@ -518,31 +518,31 @@ namespace details struct TypeListIndexer { const TypeChain& obj_; - TypeListIndexer(const TypeChain& obj) : obj_(obj) {} + constexpr TypeListIndexer(const TypeChain& obj) : obj_(obj) {} template <std::size_t N> - const TypeChain& getObj(std::true_type) + constexpr const TypeChain& getObj(std::true_type) { return obj_; } template <std::size_t N, typename MyChain = TypeChain, typename MyBase = typename MyChain::Base> - auto getObj(std::false_type) + constexpr auto getObj(std::false_type) -> decltype(TypeListIndexer<MyBase>(static_cast<const MyBase&>(obj_)).template get<N>()) { return TypeListIndexer<MyBase>(static_cast<const MyBase&>(obj_)).template get<N>(); } template <std::size_t N> - auto get() -> decltype(getObj<N - 1>(std::integral_constant<bool, N == 0>())) + constexpr auto get() -> decltype(getObj<N - 1>(std::integral_constant<bool, N == 0>())) { return getObj<N - 1>(std::integral_constant<bool, N == 0>()); } }; template <typename TypeChain> - TypeListIndexer<TypeChain> createTypeListIndexer(const TypeChain& obj) + constexpr TypeListIndexer<TypeChain> createTypeListIndexer(const TypeChain& obj) { return TypeListIndexer<TypeChain>(obj); } |