forward_as_tuple
not constexpr
?Section: 22.4.5 [tuple.creation] Status: C++14 Submitter: Marshall Clow Opened: 2013-07-30 Last modified: 2017-09-07
Priority: Not Prioritized
View all other issues in [tuple.creation].
View all issues with C++14 status.
Discussion:
Addresses ES 11
In n3471, a bunch of routines
from header <tuple>
were made constexpr
.
make_tuple/tuple_cat/get<>(tuple)/
relational operators — all these were "constexpr-ified".
But not forward_as_tuple
.
Why not?
This was discussed in Portland, and STL opined that this was "an omission" (along with tuple_cat
, which was added)
In discussion on lib@lists.isocpp.org list, Pablo agreed that forward_as_tuple
should be constexpr
.
[2013-09 Chicago]
Moved to Immediate, this directly addresses an NB comment and the wording is non-controversial.
Accept for Working Paper
Proposed resolution:
This wording is relative to N3691.
Change header <tuple>
synopsis, 22.4.1 [tuple.general] as indicated:
template <class... Types> constexpr tuple<Types&&...> forward_as_tuple(Types&&...) noexcept;
Change 22.4.5 [tuple.creation] before p5 as indicated:
template <class... Types> constexpr tuple<Types&&...> forward_as_tuple(Types&&... t) noexcept;