C++ STL map and set containers' insert() function violating the rules for default parameters? -


insert() set takes parameters: (set::iterator, int) iterator parameter optional enter, , assume must have default value in implementation.

now, aren't parameters default value supposed @ end? shouldn't insert function called like: insert(int, set::iterator) or insert(int)?

or implementation use function overloading? if so, why not use default parameters this?

it not default parameter, there multiple function overloads.

std::pair<iterator,bool> insert( const value_type& value );  template< class p > std::pair<iterator,bool> insert( p&& value );  std::pair<iterator,bool> insert( value_type&& value );  iterator insert( iterator hint, const value_type& value );  iterator insert( const_iterator hint, const value_type& value );  template< class p > iterator insert( const_iterator hint, p&& value );  iterator insert( const_iterator hint, value_type&& value );  template< class inputit > void insert( inputit first, inputit last );  void insert( std::initializer_list<value_type> ilist );  insert_return_type insert(node_type&& nh);  iterator insert(const_iterator hint, node_type&& nh); 

Comments