diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2014-02-25 16:11:46 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2014-02-25 16:11:46 +0000 |
commit | 0d1560e10e79f2d75a8fe09b07e40218d84f0ae5 (patch) | |
tree | c653b3ae355b91405b3ea5d5b2dcb71ffe156dba /libcxx | |
parent | 6d6e87be9f8ac216b1d56df065752060bed31383 (diff) | |
download | bcm5719-llvm-0d1560e10e79f2d75a8fe09b07e40218d84f0ae5.tar.gz bcm5719-llvm-0d1560e10e79f2d75a8fe09b07e40218d84f0ae5.zip |
Implement LWG issue 2301: Mark std::tie as constexpr
llvm-svn: 202158
Diffstat (limited to 'libcxx')
-rw-r--r-- | libcxx/include/tuple | 4 | ||||
-rw-r--r-- | libcxx/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp | 9 | ||||
-rw-r--r-- | libcxx/www/cxx1y_status.html | 2 |
3 files changed, 12 insertions, 3 deletions
diff --git a/libcxx/include/tuple b/libcxx/include/tuple index 24e086db588..30a958abcd3 100644 --- a/libcxx/include/tuple +++ b/libcxx/include/tuple @@ -74,7 +74,7 @@ const unspecified ignore; template <class... T> tuple<V...> make_tuple(T&&...); // constexpr in C++14 template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14 -template <class... T> tuple<T&...> tie(T&...) noexcept; +template <class... T> tuple<T&...> tie(T&...) noexcept; // constexpr in C++14 template <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14 // 20.4.1.4, tuple helper classes: @@ -796,7 +796,7 @@ constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept // tie template <class ..._Tp> -inline _LIBCPP_INLINE_VISIBILITY +inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 tuple<_Tp&...> tie(_Tp&... __t) _NOEXCEPT { diff --git a/libcxx/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp b/libcxx/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp index 112ee39a367..e6ebf958e6f 100644 --- a/libcxx/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp +++ b/libcxx/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp @@ -27,4 +27,13 @@ int main() assert(i == 42); assert(s == "C++"); } +#if _LIBCPP_STD_VER > 11 + { + static constexpr int i = 42; + static constexpr double f = 1.1; + constexpr std::tuple<const int &, const double &> t = std::tie(i, f); + static_assert ( std::get<0>(t) == 42, "" ); + static_assert ( std::get<1>(t) == 1.1, "" ); + } +#endif } diff --git a/libcxx/www/cxx1y_status.html b/libcxx/www/cxx1y_status.html index bb99d19f31c..2ac2ad2a6b8 100644 --- a/libcxx/www/cxx1y_status.html +++ b/libcxx/www/cxx1y_status.html @@ -240,7 +240,7 @@ <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2258">2258</a></td><td>a.erase(q1, q2) unable to directly return q2</td><td>Issaquah</td><td>Complete</td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2263">2263</a></td><td>Comparing iterators and allocator pointers with different const-character</td><td>Issaquah</td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2293">2293</a></td><td>Wrong facet used by num_put::do_put</td><td>Issaquah</td><td>Complete</td></tr> - <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2301">2301</a></td><td>Why is std::tie not constexpr?</td><td>Issaquah</td><td></td></tr> + <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2301">2301</a></td><td>Why is std::tie not constexpr?</td><td>Issaquah</td><td>Complete</td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2304">2304</a></td><td>Complexity of count in unordered associative containers</td><td>Issaquah</td><td>Complete</td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2306">2306</a></td><td>match_results::reference should be value_type&, not const value_type&</td><td>Issaquah</td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2308">2308</a></td><td>Clarify container destructor requirements w.r.t. std::array</td><td>Issaquah</td><td>Complete</td></tr> |