[ 2014-02-13, Issaquah, Jonathan revises wording ]
Previous resolution from Daniel [SUPERSEDED]:
This wording is relative to N3376.
The more general criterion for performing the suggested transformation was: Any type with an initializer-list constructor that also has an explicit default constructor.
Change class template basic_string synopsis, [basic.string] p5 as indicated:
basic_string() : basic_string(Allocator()) {} explicit basic_string(const Allocator& a= Allocator());Change [string.cons] before p1 as indicated:
explicit basic_string(const Allocator& a= Allocator());Change class template deque synopsis, [deque.overview] p2 as indicated:
deque() : deque(Allocator()) {} explicit deque(const Allocator&= Allocator());Change [deque.cons] before p1 as indicated:
explicit deque(const Allocator&= Allocator());Change class template forward_list synopsis, [forwardlist.overview] p3 as indicated:
forward_list() : forward_list(Allocator()) {} explicit forward_list(const Allocator&= Allocator());Change [forwardlist.cons] before p1 as indicated:
explicit forward_list(const Allocator&= Allocator());Change class template list synopsis, [list.overview] p2 as indicated:
list() : list(Allocator()) {} explicit list(const Allocator&= Allocator());Change [list.cons] before p1 as indicated:
explicit list(const Allocator&= Allocator());Change class template vector synopsis, [vector.overview] p2 as indicated:
vector() : vector(Allocator()) {} explicit vector(const Allocator&= Allocator());Change [vector.cons] before p1 as indicated:
explicit vector(const Allocator&= Allocator());Change class template specialization vector<bool> synopsis, [vector.bool] p1 as indicated:
vector() : vector(Allocator()) {} explicit vector(const Allocator&= Allocator());Change class template map synopsis, [map.overview] p2 as indicated:
map() : map(Compare()) {} explicit map(const Compare& comp= Compare(), const Allocator& = Allocator());Change [map.cons] before p1 as indicated:
explicit map(const Compare& comp= Compare(), const Allocator& = Allocator());Change class template multimap synopsis, [multimap.overview] p2 as indicated:
multimap() : multimap(Compare()) {} explicit multimap(const Compare& comp= Compare(), const Allocator& = Allocator());Change [multimap.cons] before p1 as indicated:
explicit multimap(const Compare& comp= Compare(), const Allocator& = Allocator());Change class template set synopsis, [set.overview] p2 as indicated:
set() : set(Compare()) {} explicit set(const Compare& comp= Compare(), const Allocator& = Allocator());Change [set.cons] before p1 as indicated:
explicit set(const Compare& comp= Compare(), const Allocator& = Allocator());Change class template multiset synopsis, [multiset.overview] p2 as indicated:
multiset() : multiset(Compare()) {} explicit multiset(const Compare& comp= Compare(), const Allocator& = Allocator());Change [multiset.cons] before p1 as indicated:
explicit multiset(const Compare& comp= Compare(), const Allocator& = Allocator());Change class template unordered_map synopsis, [unord.map.overview] p3 as indicated:
unordered_map() : unordered_map(see below) {} explicit unordered_map(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change [unord.map.cnstr] before p1 as indicated:
unordered_map() : unordered_map(see below) {} explicit unordered_map(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change class template unordered_multimap synopsis, [unord.multimap.overview] p3 as indicated:
unordered_multimap() : unordered_multimap(see below) {} explicit unordered_multimap(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change [unord.multimap.cnstr] before p1 as indicated:
unordered_multimap() : unordered_multimap(see below) {} explicit unordered_multimap(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change class template unordered_set synopsis, [unord.set.overview] p3 as indicated:
unordered_set() : unordered_set(see below) {} explicit unordered_set(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change [unord.set.cnstr] before p1 as indicated:
unordered_set() : unordered_set(see below) {} explicit unordered_set(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change class template unordered_multiset synopsis, [unord.multiset.overview] p3 as indicated:
unordered_multiset() : unordered_multiset(see below) {} explicit unordered_multiset(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());Change [unord.multiset.cnstr] before p1 as indicated:
unordered_multiset() : unordered_multiset(see below) {} explicit unordered_multiset(size_type n= see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type());