Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp1z/constexpr-if17.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
// PR c++/85149 // { dg-do run { target c++17 } } template <typename T> struct is_void { static constexpr bool value = false; }; template <> struct is_void<void> { static constexpr bool value = true; }; template<typename S, typename T> constexpr decltype(auto) pipeline(S source, T target) { return [=](auto... args) { if constexpr(false && is_void<decltype(source(args...))>::value) { source(args...); return target(); } else { return target(source(args...)); } }; } int main() { int i = 10; int j = 42; auto p = pipeline([&]{ return j; }, [=](int val){ return val * i; }); if (p() != 420) __builtin_abort(); }