diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-02-06 01:25:31 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-02-06 01:25:31 +0000 |
commit | 9af60c4a8b0132ec395c61c93f7d3e2af622a433 (patch) | |
tree | 5585ac50b1ce175c45c2eddbead35c26f2ebd8bd /libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp | |
parent | 75218fb6b1c979ce4891303c0cf2560639d68033 (diff) | |
download | bcm5719-llvm-9af60c4a8b0132ec395c61c93f7d3e2af622a433.tar.gz bcm5719-llvm-9af60c4a8b0132ec395c61c93f7d3e2af622a433.zip |
Implement LWG 2773 - std::ignore should be constexpr.
In addition to the PR for LWG 2773 this patch also ensures
that each of std::ignores constructors or assignment operators
are constexpr.
llvm-svn: 294165
Diffstat (limited to 'libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp index c4c3c242d8f..5dc98afe661 100644 --- a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp +++ b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp @@ -22,6 +22,24 @@ #include "test_macros.h" +#if TEST_STD_VER > 11 +constexpr bool test_tie_constexpr() { + { + int i = 42; + double f = 1.1; + using ExpectT = std::tuple<int&, decltype(std::ignore)&, double&>; + auto res = std::tie(i, std::ignore, f); + static_assert(std::is_same<ExpectT, decltype(res)>::value, ""); + assert(&std::get<0>(res) == &i); + assert(&std::get<1>(res) == &std::ignore); + assert(&std::get<2>(res) == &f); + // FIXME: If/when tuple gets constexpr assignment + //res = std::make_tuple(101, nullptr, -1.0); + } + return true; +} +#endif + int main() { { @@ -39,5 +57,8 @@ int main() static_assert ( std::get<0>(t) == 42, "" ); static_assert ( std::get<1>(t) == 1.1, "" ); } + { + static_assert(test_tie_constexpr(), ""); + } #endif } |