diff --git a/.appveyor.yml b/.appveyor.yml index 27089cb..4f3132d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,7 +1,6 @@ version: "{build}" shallow_clone: true image: - - Visual Studio 2015 - Visual Studio 2017 - Visual Studio 2019 Preview platform: diff --git a/.travis.yml b/.travis.yml index 1a7301c..739cd3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,14 +9,6 @@ matrix: dist: trusty addons: { apt: { sources: ubuntu-toolchain-r-test, packages: ["xorg-dev", "g++-8"] } } env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" - - os: linux - dist: trusty - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"], packages: ["xorg-dev", "clang-5.0", "g++-7"] } } - env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" - - os: linux - dist: trusty - addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-6.0"], packages: ["xorg-dev", "clang-6.0", "g++-7"] } } - env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0" - os: linux dist: trusty addons: { apt: { sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-7"], packages: ["xorg-dev", "clang-7", "g++-7"] } } diff --git a/README.md b/README.md index 95f119c..eddf500 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,7 @@ void clear(); iterator erase(const_iterator iter); iterator erase(const_iterator first, const_iterator last); size_type erase(const key_type& key); +template < typename K > size_type erase(const K& key); void swap(flat_set& other); ``` @@ -191,6 +192,7 @@ void swap(flat_set& other); ```cpp size_type count(const key_type& key) const; +template < typename K > size_type count(const K& key) const; iterator find(const key_type& key); const_iterator find(const key_type& key) const; @@ -201,6 +203,9 @@ template < typename K > const_iterator find(const K& key) const; std::pair equal_range(const key_type& key); std::pair equal_range(const key_type& key) const; +template < typename K > std::pair equal_range(const K& key); +template < typename K > std::pair equal_range(const K& key) const; + iterator lower_bound(const key_type& key); const_iterator lower_bound(const key_type& key) const; @@ -399,6 +404,9 @@ mapped_type& operator[](const key_type& key); mapped_type& at(const key_type& key); const mapped_type& at(const key_type& key) const; + +template < typename K > mapped_type& at(const K& key); +template < typename K > const mapped_type& at(const K& key) const; ``` ### Modifiers @@ -423,6 +431,7 @@ void clear(); iterator erase(const_iterator iter); iterator erase(const_iterator first, const_iterator last); size_type erase(const key_type& key); +template < typename K > size_type erase(const K& key); void swap(flat_map& other) ``` @@ -431,6 +440,7 @@ void swap(flat_map& other) ```cpp size_type count(const key_type& key) const; +template < typename K > size_type count(const K& key) const; iterator find(const key_type& key); const_iterator find(const key_type& key) const; @@ -441,6 +451,9 @@ template < typename K > const_iterator find(const K& key) const; std::pair equal_range(const key_type& key); std::pair equal_range(const key_type& key) const; +template < typename K > std::pair equal_range(const K& key); +template < typename K > std::pair equal_range(const K& key) const; + iterator lower_bound(const key_type& key); const_iterator lower_bound(const key_type& key) const; @@ -653,6 +666,7 @@ void clear(); iterator erase(const_iterator iter); iterator erase(const_iterator first, const_iterator last); size_type erase(const key_type& key); +template < typename K > size_type erase(const K& key); void swap(flat_multiset& other); ``` @@ -661,6 +675,7 @@ void swap(flat_multiset& other); ```cpp size_type count(const key_type& key) const; +template < typename K > size_type count(const K& key) const; iterator find(const key_type& key); const_iterator find(const key_type& key) const; @@ -671,6 +686,9 @@ template < typename K > const_iterator find(const K& key) const; std::pair equal_range(const key_type& key); std::pair equal_range(const key_type& key) const; +template < typename K > std::pair equal_range(const K& key); +template < typename K > std::pair equal_range(const K& key) const; + iterator lower_bound(const key_type& key); const_iterator lower_bound(const key_type& key) const; @@ -869,6 +887,9 @@ mapped_type& operator[](const key_type& key); mapped_type& at(const key_type& key); const mapped_type& at(const key_type& key) const; + +template < typename K > mapped_type& at(const K& key); +template < typename K > const mapped_type& at(const K& key) const; ``` ### Modifiers @@ -893,6 +914,7 @@ void clear(); iterator erase(const_iterator iter); iterator erase(const_iterator first, const_iterator last); size_type erase(const key_type& key); +template < typename K > size_type erase(const K& key); void swap(flat_multimap& other) ``` @@ -901,6 +923,7 @@ void swap(flat_multimap& other) ```cpp size_type count(const key_type& key) const; +template < typename K > size_type count(const K& key) const; iterator find(const key_type& key); const_iterator find(const key_type& key) const; @@ -911,6 +934,9 @@ template < typename K > const_iterator find(const K& key) const; std::pair equal_range(const key_type& key); std::pair equal_range(const key_type& key) const; +template < typename K > std::pair equal_range(const K& key); +template < typename K > std::pair equal_range(const K& key) const; + iterator lower_bound(const key_type& key); const_iterator lower_bound(const key_type& key) const;