summaryrefslogtreecommitdiff
path: root/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp')
-rw-r--r--test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp b/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp
index c4c3c242d8f8..5dc98afe6610 100644
--- a/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp
+++ b/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
}