This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of TS status.

### 2575. [fund.ts.v2] `experimental::function::assign` should be removed

Section: 4.2 [fund.ts.v2::func.wrap.func] Status: TS Submitter: Tim Song Opened: 2015-12-20 Last modified: 2017-07-30

Priority: 0

View all other issues in [fund.ts.v2::func.wrap.func].

View all issues with TS status.

Discussion:

Addresses: fund.ts.v2

Following the lead of LWG 2385, the `assign(F&&, const A&)` member function template in `std::experimental::function` makes no sense (it causes undefined behavior unless the allocator passed compares equal to the one already used by `*this`) and should be removed.

[2016-02, Issues Telecon]

P0; move to Tentatively Ready.

Proposed resolution:

This wording is relative to N4562.

1. Edit 4.2 [fund.ts.v2::func.wrap.func], class template `function` synopsis, as indicated:

   >     namespace std {
   >       namespace experimental {
   >       inline namespace fundamentals_v2 {
   >         […]
   >         template<class R, class... ArgTypes>
   >         class function<R(ArgTypes...)> {
   >         public:
   >           […]
   >           void swap(function&);
   >           template<class F, class A> void assign(F&&, const A&);
   >           […]
   >         };
   >         […]
   >       } // namespace fundamentals_v2
   >       } // namespace experimental
   >       […]
   >     } // namespace std