2888. Variables of library tag types need to be inline variables

Section: 23 [utilities], 33 [thread] Status: Resolved Submitter: Finland Opened: 2017-02-03 Last modified: 2017-03-20

Priority: Not Prioritized

View all other issues in [utilities].

View all issues with Resolved status.

Discussion:

Addresses FI 9

The variables of library tag types need to be inline variables. Otherwise, using them in inline functions in multiple translation units is an ODR violation.

Proposed change: Make piecewise_construct, allocator_arg, nullopt, (the in_place_tags after they are made regular tags), defer_lock, try_to_lock and adopt_lock inline.

[2017-02-03, Marshall notes]

See also GB 28 (LWG 2889)

[2017-02-25, Daniel comments]

There will be the paper p0607r0 provided for the Kona meeting that solves this issue.

[2017-03-12, post-Kona]

Resolved by p0607r0.

Proposed resolution: