Namespaces
Variants
Actions

User:Cubbi

From cppreference.com

I use C++ (with C++14 and boost) both at work and as a hobby.

I post on stackoverflow when I can.

Back around 2010 I actually started working on my own C++ reference, but then cppreference.com became publicly editable and I've redirected my efforts here.

Contents

TODO

  • Oulu motions
  • CWG Motions
  • [✓] Motion 1 "tentatively ready" issues in P0384R0
  • 1861
  • 2022 [as altered by the editor]
  • 2076
  • 2091
  • 2137
  • 2145 [noop: cpp/language/function#Function_definition already said (previously incorrectly) "declarator - function declarator, same as in the function declaration grammar above"]
  • 2171
  • [✓] [no-op, cpp/language/constraints already said "cannot be redeclared" when talking about function concepts, rather than "functions"] Motion 2 [Concepts TS] issue 26 in P0396
  • [✓] Motion 3 P0028R4 ("Using attribute namespaces without repetition").
  • [✓] Motion 4 P0035R4 ("Dynamic memory allocation for over-aligned data").
  • [✓] Motion 5 P0091R3 ("Template argument deduction for class templates (Rev. 6)").
  • [✓] Motion 6 P0127R2 ("Declaring non-type template parameters with auto").
  • [✓] Motion 7 P0135R1 ("Wording for guaranteed copy elision through simplified value categories").
  • [✓] Motion 8 P0137R1 ("Core Issue 1776: Replacement of class objects containing reference members").
  • [✓] [except func args: wording in p0400] Motion 9 P0145R3 ("Refining Expression Evaluation Order for Idiomatic C++").
  • [failed plenary] Motion 10 P0221R2 ("P0221R2: Proposed wording for default comparisons, revision 4").
  • Motion 11 P0283R2 ("Standard and non-standard attributes").
  • [✓] Motion 12 P0292R2 ("P0292R2: constexpr if: A slightly different syntax").
  • [✓] Motion 13 P0296R2 ("P0296R2: Forward progress guarantees: Base definitions").
  • [✓] Motion 14 P0299R1 ("P0299R1: Forward progress guarantees for the Parallelism TS features").
  • [✓] Motion 15 P0386R2 ("Inline Variables").
  • [✓] Motion 16 P0391R0 ("P0391R0: Introducing the term 'templated entity'").
  • [✓] Motion 17 P0217R3 ("P0217R3: Proposed wording for structured bindings").
  • [✓] Motion 18 P0305R1 ("Selection statements with initializer").
  • [✓ tc] Motion 19 P0398R0 ("P0398R0: Core issue 1518: Explicit default constructors and copy-list-initialization").
  • LWG motions
  • Motion 1 issues in "Ready" status from p0165r2: 2549 2393 2542 2436 2550 2310 2181 2328 2667 2669 2671 2673 2670 2441(md5) 2426 2309
  • Motion 2 issues in "Tentatively Ready" status from p0165r2: 2710 2685 2698 2596 2684 2689 2688 2707 2674 2706 2683
  • Motion 3 issues in "Ready" status from p0165r2 [libfun2]: 2555 2451 2573 2551 2516
  • Motion 4 issues in "Tentatively Ready" status from p0165r2 to the Library Fundamentals 2 Working Paper: 2509
  • Motion 5 Priority 1 issues in "Immediate" status from p0397r0: 2687(tc) 2704 2711 2725
  • Motion 6 issues in "Immediate" status from p0304r1: 2312 2422 2709 2716 2718 2719 2720 2721 2723 2724(tc) 2726 2727(tc) 2728
  • [✓] Motion 7 p0063r3, C++17 should refer to C11 instead of C99
  • Motion 8 p0175r1, Synopses for the C library
  • [✓] Motion 9 p0088r3, Variant: a type-safe union for C++17
  • [✓ md5] Motion 10 p0307r2, Making Optional Greater Equal Again
  • [✓] Motion 11 p0393r3, Making Variant Greater Equal
  • [✓ tc] Motion 12 p0032r3, Homogeneous interface for variant, any and optional
  • [postponed by editor] Motion 13 p0067r3, Elementary string conversions
  • [✓] Motion 14 p0254r2, Integrating std::string_view and std::string
  • [failed plenary] Motion 15 N4524, If vector::reserve(n) reallocates, capacity()==n
  • [✓] Motion 16 p0258R2, has_unique_object_representations
  • [✓ tc] Motion 17 p0040r3, Extending memory management tools
  • [✓ tc] Motion 18 p0084r2, Emplace Return Type
  • [✓ tc] Motion 19 p0302r1, Removing Allocator Support in std::function
  • [✓] Motion 20 p0083r3, Splicing Maps and Sets
  • [✓ tc] Motion 21 p0181r1, Ordered by Default
  • [✓ tc] Motion 22 p0163r0, shared_ptr::weak_type
  • [✓ tc] Motion 23 p0209r2, make_from_tuple: apply for construction
  • [✓] Motion 24 p0295r0, Adopt Selected Library Fundamentals V2 Components for C++17 (std::gcd, std::lcm)
  • [✓ tc] Motion 25 p0174r2, Deprecating Vestigial Library Parts in C++17 (std::raw_storage_iterator, std::get_temporary_buffer, std::return_temporary_buffer, std::is_literal_type, std::iterator, and the optional members of std::allocator, )
  • [✓] Motion 26 p0337r0, Delete operator= for polymorphic_allocator
  • [✓] Motion 27 p0358r1, Fixes for not_fn
  • [✓] Motion 28 p0219r1, Relative Paths for Filesystem
  • [TODO each Source and EcharT still needs an enable_if line] Motion 29 p0392r0, Adapting string_view by filesystem paths
  • [✓] Motion 30 P0394r4, Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling (removes std::exception_list)
  • [✓] Motion 31 p0336r1, Better Names for Parallel Execution Policies in C++17
  • [✓] Motion 32 p0371r1, Temporarily discourage memory_order_consume
  • [✓] Motion 33 p0346r1, A <random> Nomenclature Tweak
  • Motion 34 p0180r2, Reserve a New Library Namespace for Future Standardization
  • Motion 1 P0167R2 (1734, 1895, 1930 (no-op), 1932, 1955, 2001 (no-op), 2008, 2017, 2082, 2084, 2093, 2099 (mostly no-op), 2124 (TODO: should define function signature somewhere), 2130 (no-op), 2157 (TODO: mention the ambig between member enum decl and unnamed bit fields of enum type.. maybe))
  • Motion 2 P0263R1 (212, 238, 242, 1284, 1315, 1496, 1638, 1872, 1992, 2012, 2032, 2033, 2038 (noop), 2039 (tc), 2040 (noop), 2041 (noop), 2044 (tc), 2047, 2061, 2063, 2064 (noop), 2066, 2068 (tc), 2069, 2071, 2079, 2085, 2095, 2096, 2098, 2104, 2106, 2107, 2109, 2113, 2122, 2129, 2140, 2141, 2146, 2147, 2153, 2154, 2156, 2163, 2167, 2175, 2176, 2180)
  • [✓] Motion 3 P0188R1 [[fallthrough]]
  • [✓] Motion 4 P0189R1 [[nodiscard]]
  • [✓] Motion 5 P0212R1 [[maybe_unused]]
  • [✓] Motion 6 P0017R1 ("Extension to aggregate initialization").
  • [✓] Motion 7 P0170R1 ("Wording for Constexpr Lambda").
  • [✓] Motion 8 P0036R0 ("Unary Folds and Empty Parameter Packs (revision 1)").
  • [✓] Motion 9 P0184R0 ("Generalizing the Range-Based For Loop").
  • [✓] Motion 10 P0018R3 ("Lambda Capture of *this by Value as [=,*this]").
  • [✓] Motion 11 P0138R2 ("Construction Rules for enum class Values").
  • [✓] Motion 12 P0245R1 ("Hexadecimal floating literals for C++").
  • LWG motions
  • Motion 1: issues 2276 2523 2537
  • Motion 2: issues 2192 2450 2520 2545 2557 2559 2560 2565 2566 2571 2572 2576 2577 2579 2581 2582 2583 2585 2586 2590
  • Motion 3: issues 2522 2539 2558 2574 2575
  • [✓] Motion 4: P0024R2, The Parallelism TS Should be Standardized.
  • [✓] Motion 5: P0226R1, Mathematical Special Functions for C++17, v5.
  • [✓] Motion 6: P0220R1, Adopt Library Fundamentals V1 TS Components for C++17 (R1).
  • [✓] Motion 7: P0218R0, Adopt the File System TS for C++17.
  • [✓] Motion 8: P0033R1, Re-enabling shared_from_this (revision 1).
  • [✓] Motion 9: P0005R4, Adopt not_fn from Library Fundamentals 2 for C++17.
  • [✓] Motion 10: P0152R1, constexpr atomic::is_always_lock_free.
  • [✓] Motion 11: P0185R1, Adding [nothrow-]swappable traits, revision 3.
  • [✓] Motion 12: P0253R1, Fixing a design mistake in the searchers interface.
  • [✓] Motion 13: P0025R0, An algorithm to "clamp" a value between a pair of boundary values.
  • [✓] Motion 14: P0154R1, constexpr std::hardware_{constructive,destructive}_interference_size.
  • [✓] Motion 15: option #2 in P0030R1, Proposal to Introduce a 3-Argument Overload to std::hypot.
  • Motion 16:
  • [✓] P0031R0, A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access
  • [✓] LWG Issue 2296 - std::addressof should be constexpr. This issue is published in P0304R0.
  • [✓] Motion 17: P0272R1, Give 'std::string' a non-const '.data()' member function.
  • [✓] Motion 18: P0077R2, is_callable, the missing INVOKE related trait.
  • CWG motion 1: DRs (from p0164.html)
  • 1274 (no effect done by TC)
  • 1391
  • 1722
  • 1847 (resolved by 1391, but I didn't put the wording from the resolution of 1391 that fixes this DR yet, because it needs to be accompanied by the example from here)
  • 1863
  • 1949 (just wording, no behavior changes)
  • 1975 (may need revision when the new draft is released, due to interaction with making noexcept part of type system)
  • 1981
  • 1990 (we already say in cpp/language/declarations that decl-specifier-seq may only be omitted in constructors, destructors, and conversions.. but what is that new Note about template decalration, explicit specialization and explicit instantiation?
  • 2000
  • 2004
  • 2006
  • 2015
  • 2016 (resolved by 1990, but applied to cpp/language/cast_operator separately)
  • 2019
  • 2024
  • 2026
  • 2027
  • 2031 (no effect, we don't have a version of the Appendix C.. could be fun though)
  • 2052
  • 2075
  • 2101 (no change, we already say constant expression in cpp/language/dependent_name#Value-dependent_expressions)
  • 2120
  • remove register/bool++,++bool -- done by TC
  • CWG motion 4: make noexcept part of type system
  • CWG motion 5: __has_include
  • CWG motion 6: default member initializer -- done
  • CWG motion 7: DR 1941 et al
  • CWG motion 8: removing defaults for unary folds
  • LWG motion 1: DRs 1169 2072 2101 2111 2119 2127 2133 2156 2218 2219 2244 2250 2259 2336 2353 2367 2380 2384 2385 2435 2447 2462 2466 2469 2473 2476 2477 2483 2484 2485 2486 2487 2489 2492
  • LWG motion 2: DRs 2224 2234 2273 2495
  • LWG motion 3: remove deprecated iostream aliases
  • LWG motion 4: adopt _v's from lib fund TS
  • LWG motion 5: chrono stuff
  • LWG motion 6: std::as_const
  • LWG motion 7: variadic lock_guard
  • LWG motion 9: better std::owner_less
  • LWG motion 10: std::conjunction std::disjunction std::negation
  • LWG motion 11: LF TS v2 DR 2494
  • LWG motion 12: LF TS v2 DRs 2500 2515 2517 2526
  • LWG motion 13: LF TS v2 n4531
  • LWG motion 14: LF TS v2 std::conjunction std::disjunction std::negation
  • add all the new stuff from above to autolinker/search/highlighter
  • Merge behavior-changing DRs into main article texts and list them in a new section (see Talk:cpp/language/value_initialization) (CWG, not LWG).

Other TODO

  • the type traits in cpp/types (and elsewhere) could use _v and _t versions included in the titles of their dsc templates
  • finish up cpp/language (qual lookup, various other todos)
  • finish up the remaining redlinks in cpp/concepts
  • do something about cpp/links/libs (maybe list license and last update)
  • explain rebind for allocator concept/allocator_traits/std::allocator/scoped allocator adaptor
  • better examples for valarray masks and slices
  • cpp/types/climits (especially the cfloat macros) and c/types/limits‎ need TLC. At the very least, the macros there need their own pages with rationales/usage. Some use cases for DIGITS: [1] and [2]

Follow up

Sandbox

User:Cubbi/Sandbox

Big-picture items for cpp/language Miscellaneous

  • Tag dispatch
  • CRTP, mixins, and policies
  • Value-semantic polymorphism