[CD] Why is forward_as_tuple not constexpr?
Marshall Clow

Created on 2013-07-30.00:00:00 last changed 122 months ago


Date: 2013-09-25.12:39:33

Proposed resolution:

This wording is relative to N3691.

  1. Change header <tuple> synopsis, [tuple.general] as indicated:

    template <class... Types>
      constexpr tuple<Types&&...> forward_as_tuple(Types&&...) noexcept;
  2. Change [tuple.creation] before p5 as indicated:

    template <class... Types>
      constexpr tuple<Types&&...> forward_as_tuple(Types&&... t) noexcept;
Date: 2013-09-29.11:37:54

[ 2013-09 Chicago ]

Moved to Immediate, this directly addresses an NB comment and the wording is non-controversial.

Accept for Working Paper

Date: 2017-09-07.13:59:44

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.

Date User Action Args
2014-02-20 13:20:35adminsetstatus: wp -> c++14
2013-09-29 11:37:54adminsetstatus: immediate -> wp
2013-09-25 12:39:33adminsetmessages: + msg6611
2013-09-25 12:39:33adminsetstatus: new -> immediate
2013-08-18 21:41:37adminsetmessages: + msg6556
2013-07-30 00:00:00admincreate