C++14/17 Features and STL Fixes in VS "15" Preview 5 - C++ Team Blog (original) (raw)

Status

Std

Issue

Title

missing

C++17

LWG 1169

num_get not fully compatible with strto*

missing

C++17

LWG 2059

C++0x ambiguity problem with map::erase

missing

C++17

LWG 2156

Unordered containers’ reserve(n) reserves for n-1 elements

missing

C++17

LWG 2408

SFINAE-friendly common_type / iterator_traits is missing in C++14

missing

C++17

LWG 2415

Inconsistency between unique_ptr and shared_ptr

missing

C++17

LWG 2422

std::numeric_limits::is_modulo description: “most machines” errata

missing

C++17

LWG 2436

Comparators for associative containers should always be CopyConstructible

missing

C++17

LWG 2724

The protected virtual member functions of memory_resource should be private

filesystem

C++17

LWG 2667

path::root_directory() description is confusing

filesystem

C++17

LWG 2669

recursive_directory_iterator effects refers to non-existent functions

filesystem

C++17

LWG 2670

system_complete refers to undefined variable ‘base’

filesystem

C++17

LWG 2671

Errors in Copy

filesystem

C++17

LWG 2673

status() effects cannot be implemented as specified

filesystem

C++17

LWG 2674

Bidirectional iterator requirement on path::iterator is very expensive

filesystem

C++17

LWG 2683

filesystem::copy() says “no effects”

filesystem

C++17

LWG 2704

recursive_directory_iterator’s members should require ‘*this is dereferenceable’

filesystem

C++17

LWG 2706

Error reporting for recursive_directory_iterator::pop() is under-specified

filesystem

C++17

LWG 2707

path construction and assignment should have “string_type&&” overloads

filesystem

C++17

LWG 2711

path is convertible from approximately everything under the sun

filesystem

C++17

LWG 2720

permissions function incorrectly specified for symlinks

filesystem

C++17

LWG 2721

remove_all has incorrect post conditions

filesystem

C++17

LWG 2723

Do directory_iterator and recursive_directory_iterator become the end iterator upon error?

filesystem

C++17

LWG 2725

filesystem::exists(const path&, error_code&) error reporting

filesystem

C++17

LWG 2726

[recursive_]directory_iterator::increment(error_code&) is underspecified

filesystem

C++17

LWG 2728

status(p).permissions() and symlink_status(p).permissions() are not specified

parallel

C++17

LWG 2687

{inclusive,exclusive}_scan misspecified

parallel

C++17

LWG 2689

Parallel versions of std::copy and std::move shouldn’t be in order

parallel

C++17

LWG 2727

Parallel algorithms with constexpr specifier

WCFB02

C++14

LWG 2140

notify_all_at_thread_exit synchronization

WCFB02

C++17

LWG 2309

mutex::lock() should not throw device_or_resource_busy

RTM

New

LWG 2769

Redundant const in the return type of any_cast(const any&)

RC

C++14

LWG 2252

Strong guarantee on vector::push_back() still broken with C++11?

RC

New

LWG 2509

[fund.ts.v2] any_cast doesn’t work with rvalue reference targets and cannot move with a value target

RC

New

LWG 2744

any’s in_place constructors

RC

New

LWG 2746

Inconsistency between requirements for emplace between optional and variant

RC

New

LWG 2754

The in_place constructors and emplace functions added by P0032R3 don’t require CopyConstructible

Preview 5

C++14

LWG 2350

min, max, and minmax should be constexpr

Preview 5

C++17

LWG 2192

Validity and return type of std::abs(0u) is unclear

Preview 5

C++17

LWG 2276

Missing requirement on std::promise::set_exception

Preview 5

C++17

LWG 2328

Rvalue stream extraction should use perfect forwarding

Preview 5

C++17

LWG 2369

constexpr max(initializer_list) vs max_element

Preview 5

C++17

LWG 2485

get() should be overloaded for const tuple&&

Preview 5

C++17

LWG 2520

N4089 broke initializing unique_ptr<T[]> from a nullptr

Preview 5

C++17

LWG 2719

permissions function should not be noexcept due to narrow contract

Preview 5

New

LWG 2713

More missing allocator-extended constructors for unordered containers

Preview 5

New

LWG 2756

C++ WP optional should ‘forward’ T’s implicit conversions

Preview 4

C++14

LWG 2135

Unclear requirement for exceptions thrown in condition_variable::wait()

Preview 4

C++14

LWG 2203

scoped_allocator_adaptor uses wrong argument types for piecewise construction

Preview 4

C++14

LWG 2210

Missing allocator-extended constructor for allocator-aware containers

Preview 4

C++17

LWG 2063

Contradictory requirements for string move assignment

Preview 4

C++17

LWG 2219

INVOKE-ing a pointer to member with a reference_wrapper as the object expression

Preview 4

C++17

LWG 2439

unique_copy() sometimes can’t fall back to reading its output

Preview 4

C++17

LWG 2476

scoped_allocator_adaptor is not assignable

Preview 4

C++17

LWG 2566

Requirements on the first template parameter of container adaptors

Preview 4

C++17

LWG 2576

istream_iterator and ostream_iterator should use std::addressof

Preview 4

C++17

LWG 2577

{shared,unique}_lock should use std::addressof

Preview 4

C++17

LWG 2579

Inconsistency wrt Allocators in basic_string assignment vs. basic_string::assign

Preview 4

C++17

LWG 2583

There is no way to supply an allocator for basic_string(str, pos)

Preview 4

C++17

LWG 2586

Wrong value category used in scoped_allocator_adaptor::construct()

Preview 4

C++17

LWG 2684

priority_queue lacking comparator typedef

Preview 4

C++17

LWG 2716

Specification of shuffle and sample disallows lvalue URNGs

Update 3

C++14

LWG 2064

More noexcept issues in basic_string

Update 3

C++17

LWG 2296

std::addressof should be constexpr

Update 3

C++17

LWG 2596

vector::data() should use addressof

Update 3

C++17

LWG 2688

clamp misses preconditions and has extraneous condition on result

Update 2

C++14

LWG 2005

unordered_map::insert(T&&) protection should apply to map too

Update 2

C++14

LWG 2021

Further incorrect usages of result_of

Update 2

C++14

LWG 2132

std::function ambiguity

Update 2

C++14

LWG 2196

Specification of is_*[copy/move]_[constructible/assignable] unclear for non-referencable types

Update 2

C++17

LWG 2101

Some transformation types can produce impossible types

Update 2

C++17

LWG 2106

move_iterator wrapping iterators returning prvalues

Update 2

C++17

LWG 2127

Move-construction with raw_storage_iterator

Update 2

C++17

LWG 2217

operator==(sub_match, string) slices on embedded ‘\0’s

Update 2

C++17

LWG 2312

tuple’s constructor constraints need to be phrased more precisely

Update 2

C++17

LWG 2353

std::next is over-constrained

Update 2

C++17

LWG 2354

Unnecessary copying when inserting into maps with braced-init syntax

Update 2

C++17

LWG 2367

pair and tuple are not correctly implemented for is_constructible with no args

Up2 opt-in

C++17

LWG 2385

function::assign allocator argument doesn’t make sense

Update 2

C++17

LWG 2393

std::function’s Callable definition is broken

Update 2

C++17

LWG 2455

Allocator default construction should be allowed to throw

Update 2

C++17

LWG 2466

allocator_traits::max_size() default behavior is incorrect

Update 2

C++17

LWG 2469

Wrong specification of Requires clause of operator[] for map and unordered_map

Update 2

C++17

LWG 2549

Tuple EXPLICIT constructor templates […] will create dangling references

VS 2015

C++14

GB 9

Remove gets from C++14

VS 2015

C++14

LWG 2009

Reporting out-of-bound values on numeric string conversions

VS 2015

C++14

LWG 2078

Throw specification of async() incomplete

VS 2015

C++14

LWG 2094

duration conversion overflow shouldn’t participate in overload resolution

VS 2015

C++14

LWG 2097

packaged_task constructors should be constrained

VS 2015

C++14

LWG 2103

std::allocator_traits<std::allocator>::propagate_on_container_move_assignment

VS 2015

C++14

LWG 2104

unique_lock move-assignment should not be noexcept

VS 2015

C++14

LWG 2112

User-defined classes that cannot be derived from

VS 2015

C++14

LWG 2144

Missing noexcept specification in type_index

VS 2015

C++14

LWG 2145

error_category default constructor

VS 2015

C++14

LWG 2162

allocator_traits::max_size missing noexcept

VS 2015

C++14

LWG 2174

wstring_convert::converted() should be noexcept

VS 2015

C++14

LWG 2176

Special members for wstring_convert and wbuffer_convert

VS 2015

C++14

LWG 2187

vector is missing emplace and emplace_back member functions

VS 2015

C++14

LWG 2193

Default constructors for standard library containers are explicit

VS 2015

C++14

LWG 2247

Type traits and std::nullptr_t

VS 2015

C++14

LWG 2268

Setting a default argument in the declaration of a member function assign of std::basic_string

VS 2015

C++14

LWG 2272

quoted should use char_traits::eq for character comparison

VS 2015

C++14

LWG 2275

Why is forward_as_tuple not constexpr?

VS 2015

C++14

LWG 2278

User-defined literals for Standard Library types

VS 2015

C++14

LWG 2280

begin / end for arrays should be constexpr and noexcept

VS 2015

C++14

LWG 2285

make_reverse_iterator

VS 2015

C++14

LWG 2301

Why is std::tie not constexpr?

VS 2015

C++14

LWG 2306

match_results::reference should be value_type&, not const value_type&

VS 2015

C++14

LWG 2315

weak_ptr should be movable

VS 2015

C++14

LWG 2324

Insert iterator constructors should use addressof()

VS 2015

C++14

LWG 2329

regex_match()/regex_search() with match_results should forbid temporary strings

VS 2015

C++14

LWG 2332

regex_iterator/regex_token_iterator should forbid temporary regexes

VS 2015

C++14

LWG 2339

Wording issue in nth_element

VS 2015

C++14

LWG 2344

quoted()’s interaction with padding is unclear

VS 2015

C++14

LWG 2346

integral_constant’s member functions should be marked noexcept

VS 2015

C++17

LWG 2129

User specializations of std::initializer_list

VS 2015

C++17

LWG 2133

Attitude to overloaded comma for iterators

VS 2015

C++17

LWG 2212

tuple_size for const pair request header

VS 2015

C++17

LWG 2234

assert() should allow usage in constant expressions

VS 2015

C++17

LWG 2365

Missing noexcept in shared_ptr::shared_ptr(nullptr_t)

VS 2015

C++17

LWG 2399

shared_ptr’s constructor from unique_ptr should be constrained

VS 2015

C++17

LWG 2400

shared_ptr’s get_deleter() should use addressof()

VS 2015

C++17

LWG 2401

std::function needs more noexcept

VS 2015

C++17

LWG 2403

stof() should call strtof() and wcstof()

VS 2015

C++17

LWG 2407

packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit

VS 2015

C++17

LWG 2420

function<void(ArgTypes…)> does not discard the return value of the target object

VS 2015

C++17

LWG 2426

Issue about compare_exchange

VS 2015

C++17

LWG 2433

uninitialized_copy()/etc. should tolerate overloaded operator&

VS 2015

C++17

LWG 2440

seed_seq::size() should be noexcept

VS 2015

C++17

LWG 2442

call_once() shouldn’t DECAY_COPY()

VS 2015

C++17

LWG 2454

Add raw_storage_iterator::base() member

VS 2015

C++17

LWG 2458

N3778 and new library deallocation signatures

VS 2015

C++17

LWG 2464

try_emplace and insert_or_assign misspecified

VS 2015

C++17

LWG 2467

is_always_equal has slightly inconsistent default

VS 2015

C++17

LWG 2483

throw_with_nested() should use is_final

VS 2015

C++17

LWG 2484

rethrow_if_nested() is doubly unimplementable

VS 2015

C++17

LWG 2486

mem_fn() should be required to use perfect forwarding

VS 2015

C++17

LWG 2487

bind() should be const-overloaded, not cv-overloaded

VS 2015

C++17

LWG 2488

Placeholders should be allowed and encouraged to be constexpr

VS 2015

C++17

LWG 2489

mem_fn() should be noexcept

VS 2013

C++14

LWG 1214

Insufficient/inconsistent key immutability requirements for associative containers

VS 2013

C++14

LWG 2011

Unexpected output required of strings

VS 2013

C++14

LWG 2018

regex_traits::isctype Returns clause is wrong

VS 2013

C++14

LWG 2033

Preconditions of reserve, shrink_to_fit, and resize functions

VS 2013

C++14

LWG 2039

Issues with std::reverse and std::copy_if

VS 2013

C++14

LWG 2047

Incorrect “mixed” move-assignment semantics of unique_ptr

VS 2013

C++14

LWG 2049

is_destructible is underspecified

VS 2013

C++14

LWG 2050

Unordered associative containers do not use allocator_traits to define member types

VS 2013

C++14

LWG 2056

future_errc enums start with value 0 (invalid value for broken_promise)

VS 2013

C++14

LWG 2061

make_move_iterator and arrays

VS 2013

C++14

LWG 2067

packaged_task should have deleted copy c’tor with const parameter

VS 2013

C++14

LWG 2074

Off by one error in std::reverse_copy

VS 2013

C++14

LWG 2083

const-qualification on weak_ptr::owner_before

VS 2013

C++14

LWG 2087

iostream_category() and noexcept

VS 2013

C++14

LWG 2096

Incorrect constraints of future::get in regard to MoveAssignable

VS 2013

C++14

LWG 2128

Absence of global functions cbegin/cend

VS 2013

C++14

LWG 2138

atomic_flag::clear ordering constraints

VS 2013

C++14

LWG 2141

common_type trait produces reference types

VS 2013

C++14

LWG 2143

ios_base::xalloc should be thread-safe

VS 2013

C++14

LWG 2148

Hashing enums should be supported directly by std::hash

VS 2013

C++14

LWG 2188

Reverse iterator does not fully support targets that overload operator&

VS 2013

C++14

LWG 2197

Specification of is_[un]signed unclear for non-arithmetic types

VS 2013

C++14

LWG 2213

Return value of std::regex_replace

VS 2013

C++14

LWG 2229

Standard code conversion facets underspecified

VS 2013

C++14

LWG 2284

Inconsistency in allocator_traits::max_size

VS 2013

C++14

LWG 2293

Wrong facet used by num_put::do_put

VS 2013

C++14

LWG 2313

tuple_size should always derive from integral_constant

VS 2013

C++14

LWG 2317

The type property queries should be UnaryTypeTraits returning size_t

VS 2013

C++14

LWG 2330

regex(“meow”, regex::icase) is technically forbidden but should be permitted

VS 2013

C++14

LWG 2341

Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir)

VS 2013

C++14

LWG 2359

How does regex_constants::nosubs affect basic_regex::mark_count()?

VS 2013

C++14

LWG 2360

reverse_iterator::operator*() is unimplementable

VS 2013

C++17

LWG 2244

Issue on basic_istream::seekg

VS 2013

C++17

LWG 2273

regex_match ambiguity

VS 2013

C++17

LWG 2441

Exact-width atomic typedefs should be provided

VS 2013

C++17

LWG 2473

basic_filebuf’s relation to C FILE semantics

VS 2013

C++17

LWG 2537

Constructors for priority_queue taking allocators should call make_heap

VS 2013

C++17

LWG 2560

is_constructible underspecified when applied to a function type