User:T. Canens/Kona

Cubbi's TODOs:

TODO

 * Apply Kona motions
 * CWG motion 1: DRs 1274 1391 1722 1847 1863 1949 1975 1981 1990 2000 2004 2006 2015 2016 2019 2024 2026 2027 2031 2052 2075 2101 2120
 * Cubbi did them all. Yay :)
 * LWG motion 1:
 * LWG 2218: Looks like we just need to change the concept pages?
 * Done. I hate allocators.
 * LWG 2219: INVOKE. Not touching with a barge pole, at least not tonight.
 * Worked it into . Need to do still and maybe some other place.
 * LWG 2259: Same problem as LWG 2224, below.
 * LWG 2380: We don't actually describe the can provide  rule anywhere?
 * I think cpp/header would be a good place. --Cubbi (talk) 05:54, 28 October 2015 (PDT)
 * and now cpp/header has that discussion. --Cubbi (talk) 12:50, 10 November 2016 (PST)
 * LWG 2469: I don't want to use a C++17 member function to specify something that's in C++98. /sigh.
 * Even more fun, our current description requiring MeowConstructible is broken. Before this issue it didn't match the spec (which wrongly required MeowInsertable). Now it actually requires from  (or the moving version), which is different from MeowConstructible because the allocator's construct can do all sorts of fun things (e.g., std).
 * Since the C++14 wording was broken (there's no way MeowInsertable will work here), need to check implementations to see if we should just use EmplaceConstructible since C++11, or something else.
 * Great, libc++ does call twice, once for key and once for value, and not for the pair itself. libstdc++ has always used emplace (and hence s the pair) in C++11 or later.
 * STL gave his usual "use VS2015" talk when I asked him on Twitter :( Looks like VS2013 emplaces, and VS2012 (and presumably earlier versions) does the C++03.
 * Applied as requiring from piecewise_construct &c. since C++11, with a note discussing the change and mentioning libc++. N3059's -simplification proposal depends on the pair being constructed as a pair and not separately, so I'd say that's the clear intent.
 * LWG 2486: std's description of its is woefully incomplete.
 * Now rewritten and noted the forwarding.
 * LWG 2487: std completely omits any discussion about the cv-qualifiers of the returned call wrapper. Will need more work.
 * Done. Not a big fan of how that page is currently written, but that's for another day.
 * LWG motion 2:
 * LWG 2224: I don't see a good place to apply it. Many parts of clause 17 (e.g., the prohibition against instantiating std:: templates with incomplete types or the leeway granted to implementers on member function signatures, see LWG2259 above) don't appear to be in cppreference.
 * LWG 2234: The "NDEBUG is defined at the point where assert(E) appears" part looks wrong. If that's the actual edit applied (looks like it from the github repo), we may need a new LWG issue. Skipping for now.
 * STL says it's clearly an oversight, so I emailed in a new LWG issue. Haven't gotten a confirmation yet.
 * Now LWG 2559.

Done

 * 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 2244 2250 2336 2353 23672384 2385 2435 2447 2462 2466 2473 2476 2477 2483 2484 2485 2489 2492
 * LWG 2244: Our description already reflects the resolution; no edits needed.
 * LWG 2435: Our description doesn't contain the offending remark.
 * LWG 2476: Added without since=c++17. The original was obviously broken.
 * LWG 2492 looks like simple standardese cleanup. Our looks OK already.
 * LWG motion 2: DRs 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 11: LF TS v2 DR 2494 -- done by TC
 * LWG motion 12: LF TS v2 DRs 2500 2515 2517 2526
 * 2500 concerns LF, which is a redlink right now.
 * 2526 concerns LF, which is also a redlink right now
 * 2515/7 are quasi-typos in the spec, already fixed on cppreference by following the synopsis.
 * LWG motion 10: std::conjunction std::disjunction std::negation
 * LWG motion 13: LF TS v2 n4531
 * LWG motion 14: LF TS v2 std::conjunction std::disjunction std::negation