    Document number	 N3338=12-0028
    Date	         2012-01-16
    Project	         Programming Language C++
    Reference        ISO/IEC IS 14882:2011(E)
    Reply to         Stefanus Du Toit
                     Intel
                     cxxeditor@gmail.com

# C++ Editor's Report, January 2012

N3337 is the latest C++ draft specification. The only changes since N3291 are editorial.

## Summary of changes

The following editorial changes were made:

- Fix parameter names in inner_product
- Fixed typeface in [thread.thread.destr] and locales
- Fixed some wording in [thread.thread.destr].
- Fixed "terminate()" -> "std::terminate()" in a bunch of places, and
similar fixes for "unexpected()".
- Fix small issue in [pointer.traits.functions]
- Fix "contructor" typo in [expr.call].
- Fix typo "anotherside" -> "another side"
- Ensure unique_ptr::unique_ptr(nullptr_t) is noexcept for the T[]
specialization of unique_ptr.
- Remove "noexcept" from tuple::operator=(pair&&) as intended in N3279.
- Remove accidentally added const to UTypes&& parameter of tuple constructor.
- Fix "An shared state" -> "A shared state".
- Fix indentation in code example in [temp.variadic].
- [locale.members] - remove stray text.
- [locale.time.put.virtuals] - replace period with comma.
- [unordered] - replace "implementation-defined" with "see below" for unordered_set and unordered_multiset
- Add missing "of" in [lex.ext]/6, "type of ch".
- Add aligned_union declaration to type_traits synopsis.
- Fix formatting of aligned_union description.
- cosntant -> constant
- Remove const from && parameter to scoped_allocator_adaptor constructor.
- Replace static_cast<Outer> with static_cast<OuterAlloc> in [allocator.adaptor.members]/3&4.
- Fix instances of "if such a type exits" -> "... exists" in [allocator.traits.types] (thanks Jonathan Wakely)
- Type T should be charT in [string.access] (thanks Jonathan Wakely)
- Several font fixes for requirements such as CopyConstructible (thanks Jonathan Wakely)
- Formatting fixes in [diagnostics] (thanks Jonathan Wakely)
- Missing colon in nested-name-specifier in [futures.async] (thanks Jonathan Wakely)
- Removal of redundant template argument lists throughout [containers] (thanks Jonathan Wakely)
- Correcting "T" to "value_type" in [associative.reqmts] (thanks Jonathan Wakely)
- "behavor" -> "behavior" in compatibility annex (thanks Jonathan Wakely)
- Remove duplicate ATOMIC_LLONG_LOCK_FREE definition in [atomics.syn] (thanks Jonathan Wakely)
- Several typo fixes in the index (thanks Jonathan Wakely)
- Simple fixes to non-normative example in [thread.once.callonce] (thanks Nico Josuttis)
- Remove redundant "non-reference" from object type in [allocator.requirements] Table 27 (thanks Jens Maur
- Fix "template function" -> "member function" in [pointer.traits.functions] (thanks Jens Maurer)
- Fix "template function" -> "function template" throughout [unique_ptr], [shared_ptr], and in [futures.as
- Fix typo cstding -> cstdint in [diff.cpp03.library] (thanks Daniel Krügler)
- Fixed typo theads -> threads in [thread] (thanks Mark de Wever)
- Add missing closing parenthesis in [vector.bool] (thanks Stephan T. Lavajev)
- Remove spurious period in [reverse.iter.requirements] (thanks Daniel Krügler)
- Remove spurious closing brace in [locale.num.get] and clean up declarations (thanks Nico Josuttis)
- Fix 'osterambuf' -> 'ostreambuf' typo in [localy.syn] (thanks Nico Josuttis)
- Add default template argument 'default-alignment' to aligned_storage declaration in synopsis (thanks Daniel Krügler and Nico Josuttis)
- Add declarations for generic_category() and system_category() to synopsis in [syserr.errcat.overview] (thanks Nico Josuttis)
- Add virtual to function declarations in override example in [class.virtual] (thanks Torsten Will)
- Only reference types to literal types are literal types in [basic.types] (thanks Andrew Koenig)
- Clarify definition of literal type in [basic.types] (thanks Andrew Koenig)
- Fix a few Effects clauses in [string.modifiers] and a broken Returns clause (thanks Bo Persson)
- More fixes and improvements to operator+= effects clauses in [string.modifiers] (thanks Chandler Carruth
- Fix location of #include <initializer_list> in synopses in [sequences.general] (thanks Jon Benito)
- Add missing paragraph number and fix double semicolons in [thread.thread] (thanks Pete Becker)
- Several tiny fixes in [thread] (thanks Pete Becker)
- Missing paragraph number in [futures] (thanks Pete Becker)
- Remove extraneous sentence from [hash.requirements] (thanks Pete Becker)
- Add returns clause for thread::operator=() in [thread.thread.assign] (thanks Pete Becker)
- Remove extraneous parentheses in [thread.req.timing] (thanks Pete Becker)
- Remove redundancy from 'should' sentence in [thread.req.timing] (thanks Pete Becker)
- Fix string inserters and extractors in synopsis to match [string.io] (thanks Daniel Krügler)
- Fix many obvious spelling mistakes (thanks Eelis van der Weegen)
- Fix second parameter of two-parameter forward_list::erase_after() to be const_iterator in [forwardlist] (thanks Daniel Krügler)
- Change sometype/some_type to onlydouble in example in [dcl.fct.def.delete] (thanks Peter Sommerlad)
- Add <scoped_allocator> to the list of headers in [headers] (thanks to Pete Becker and Daniel Krügler)
- Remove confusing 'empty class' index entries (thanks Daniel Krügler)
- Small fixes in [string::insert] (thanks Nico Josuttis)
- 'Two threads' -> 'Two or more threads' in [intro.memory] (thanks Roger Orr)

## Acknowledgments

Special thanks go out to Pete Becker, the previous project editor, for all his efforts in maintaining the specification this far, and his help in getting started on a daunting task.

Thank you to all of the people listed in the changes above who submitted editorial problems, and apologies to any who were missed in some of the early changes.

If you would like to report an issue, please follow these instructions.