From 3f2007a593930df613e7276c76abfd2a65465ad5 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 4 Oct 2017 15:44:40 +0200 Subject: [PATCH] simplification of std container wrappers --- alib2std/src/extensions/bitset.hpp | 16 ++++------------ alib2std/src/extensions/deque.hpp | 16 ++++------------ alib2std/src/extensions/list.hpp | 16 ++++------------ alib2std/src/extensions/map.hpp | 16 ++++------------ alib2std/src/extensions/pair.hpp | 16 ++++------------ alib2std/src/extensions/set.hpp | 16 ++++------------ alib2std/src/extensions/string.hpp | 16 ++++------------ alib2std/src/extensions/tuple.hpp | 16 ++++------------ alib2std/src/extensions/unordered_map.hpp | 16 ++++------------ alib2std/src/extensions/vector.hpp | 16 ++++------------ 10 files changed, 40 insertions(+), 120 deletions(-) diff --git a/alib2std/src/extensions/bitset.hpp b/alib2std/src/extensions/bitset.hpp index 1462284153..ef5d78b828 100644 --- a/alib2std/src/extensions/bitset.hpp +++ b/alib2std/src/extensions/bitset.hpp @@ -27,23 +27,15 @@ public: bitset ( ) noexcept : std::bitset < N > ( ) { } - bitset ( const bitset & other ) noexcept : std::bitset < N > ( other ) { - } + bitset ( const bitset & other ) = default; - bitset ( bitset && other ) noexcept : std::bitset < N > ( std::move ( other ) ) { - } + bitset ( bitset && other ) = default; using std::bitset < N >::bitset; - bitset & operator = ( bitset && other ) noexcept { - static_cast < std::bitset < N > & > ( * this ) = std::move ( other ); - return * this; - } + bitset & operator = ( bitset && other ) = default; - bitset & operator = ( const bitset & other ) noexcept { - static_cast < std::bitset < N > & > ( * this ) = other; - return * this; - } + bitset & operator = ( const bitset & other ) = default; using std::bitset < N >::operator =; #endif diff --git a/alib2std/src/extensions/deque.hpp b/alib2std/src/extensions/deque.hpp index e58893cdc1..4533333286 100644 --- a/alib2std/src/extensions/deque.hpp +++ b/alib2std/src/extensions/deque.hpp @@ -27,23 +27,15 @@ public: deque ( ) noexcept : std::deque < T, Alloc > ( ) { } - deque ( const deque & other ) noexcept : std::deque < T, Alloc > ( other ) { - } + deque ( const deque & other ) = default; - deque ( deque && other ) noexcept : std::deque < T, Alloc > ( std::move ( other ) ) { - } + deque ( deque && other ) = default; using std::deque < T, Alloc >::deque; - deque & operator = ( deque && other ) noexcept { - static_cast < std::deque < T, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + deque & operator = ( deque && other ) = default; - deque & operator = ( const deque & other ) noexcept { - static_cast < std::deque < T, Alloc > & > ( * this ) = other; - return * this; - } + deque & operator = ( const deque & other ) = default; using std::deque < T, Alloc >::operator =; #endif diff --git a/alib2std/src/extensions/list.hpp b/alib2std/src/extensions/list.hpp index c515b63973..3452bf05ce 100644 --- a/alib2std/src/extensions/list.hpp +++ b/alib2std/src/extensions/list.hpp @@ -27,23 +27,15 @@ public: list ( ) noexcept : std::list < T, Alloc > ( ) { } - list ( const list & other ) noexcept : std::list < T, Alloc > ( other ) { - } + list ( const list & other ) = default; - list ( list && other ) noexcept : std::list < T, Alloc > ( std::move ( other ) ) { - } + list ( list && other ) = default; using std::list < T, Alloc >::list; - list & operator = ( list && other ) noexcept { - static_cast < std::list < T, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + list & operator = ( list && other ) = default; - list & operator = ( const list & other ) noexcept { - static_cast < std::list < T, Alloc > & > ( * this ) = other; - return * this; - } + list & operator = ( const list & other ) = default; using std::list < T, Alloc >::operator =; #endif diff --git a/alib2std/src/extensions/map.hpp b/alib2std/src/extensions/map.hpp index ac65792b5c..927b9132bd 100644 --- a/alib2std/src/extensions/map.hpp +++ b/alib2std/src/extensions/map.hpp @@ -29,23 +29,15 @@ public: map ( ) noexcept : std::map < T, R, Cmp, Alloc > ( ) { } - map ( const map & other ) noexcept : std::map < T, R, Cmp, Alloc > ( other ) { - } + map ( const map & other ) = default; - map ( map && other ) noexcept : std::map < T, R, Cmp, Alloc > ( std::move ( other ) ) { - } + map ( map && other ) = default; using std::map < T, R, Cmp, Alloc >::map; - map & operator = ( map && other ) noexcept { - static_cast < std::map < T, R, Cmp, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + map & operator = ( map && other ) = default; - map & operator = ( const map & other ) noexcept { - static_cast < std::map < T, R, Cmp, Alloc > & > ( * this ) = other; - return * this; - } + map & operator = ( const map & other ) = default; using std::map < T, R, Cmp, Alloc >::operator =; #endif diff --git a/alib2std/src/extensions/pair.hpp b/alib2std/src/extensions/pair.hpp index a635163296..c36ea0e382 100644 --- a/alib2std/src/extensions/pair.hpp +++ b/alib2std/src/extensions/pair.hpp @@ -24,23 +24,15 @@ public: using std::pair < T, R >::pair; using std::pair < T, R >::operator =; #else - pair ( const pair & other ) noexcept : std::pair < T, R > ( other ) { - } + pair ( const pair & other ) = default; - pair ( pair && other ) noexcept : std::pair < T, R > ( std::move ( other ) ) { - } + pair ( pair && other ) = default; using std::pair < T, R >::pair; - pair & operator = ( pair && other ) noexcept { - static_cast < std::pair < T, R > & > ( * this ) = std::move ( other ); - return * this; - } + pair & operator = ( pair && other ) = default; - pair & operator = ( const pair & other ) noexcept { - static_cast < std::pair < T, R > & > ( * this ) = other; - return * this; - } + pair & operator = ( const pair & other ) = default; using std::pair < T, R >::operator =; #endif diff --git a/alib2std/src/extensions/set.hpp b/alib2std/src/extensions/set.hpp index 6d51ec8a9a..5040f8210d 100644 --- a/alib2std/src/extensions/set.hpp +++ b/alib2std/src/extensions/set.hpp @@ -27,23 +27,15 @@ public: set ( ) noexcept : std::set < T, Cmp, Alloc > ( ) { } - set ( const set & other ) noexcept : std::set < T, Cmp, Alloc > ( other ) { - } + set ( const set & other ) = default; - set ( set && other ) noexcept : std::set < T, Cmp, Alloc > ( std::move ( other ) ) { - } + set ( set && other ) = default; using std::set < T, Cmp, Alloc >::set; - set & operator = ( set && other ) noexcept { - static_cast < std::set < T, Cmp, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + set & operator = ( set && other ) = default; - set & operator = ( const set & other ) noexcept { - static_cast < std::set < T, Cmp, Alloc > & > ( * this ) = other; - return * this; - } + set & operator = ( const set & other ) = default; using std::set < T, Cmp, Alloc >::operator =; #endif diff --git a/alib2std/src/extensions/string.hpp b/alib2std/src/extensions/string.hpp index 4eae27a05a..bff158c091 100644 --- a/alib2std/src/extensions/string.hpp +++ b/alib2std/src/extensions/string.hpp @@ -24,23 +24,15 @@ public: string ( ) noexcept : std::string ( ) { } - string ( const string & other ) noexcept : std::string ( other ) { - } + string ( const string & other ) = default; - string ( string && other ) noexcept : std::string ( std::move ( other ) ) { - } + string ( string && other ) = default; using std::string::string; - string & operator = ( string && other ) noexcept { - static_cast < std::string & > ( * this ) = std::move ( other ); - return * this; - } + string & operator = ( string && other ) = default; - string & operator = ( const string & other ) noexcept { - static_cast < std::string & > ( * this ) = other; - return * this; - } + string & operator = ( const string & other ) = default; using std::string::operator =; #endif diff --git a/alib2std/src/extensions/tuple.hpp b/alib2std/src/extensions/tuple.hpp index e5c875a96f..407fd44424 100644 --- a/alib2std/src/extensions/tuple.hpp +++ b/alib2std/src/extensions/tuple.hpp @@ -27,23 +27,15 @@ public: tuple ( ) noexcept : std::tuple < Ts ... > ( ) { } - tuple ( const tuple & other ) noexcept : std::tuple < Ts ... > ( other ) { - } + tuple ( const tuple & other ) = default; - tuple ( tuple && other ) noexcept : std::tuple < Ts ... > ( std::move ( other ) ) { - } + tuple ( tuple && other ) = default; using std::tuple < Ts ... >::tuple; - tuple & operator = ( tuple && other ) noexcept { - static_cast < std::tuple < Ts ... > & > ( * this ) = std::move ( other ); - return * this; - } + tuple & operator = ( tuple && other ) = default; - tuple & operator = ( const tuple & other ) noexcept { - static_cast < std::tuple < Ts ... > & > ( * this ) = other; - return * this; - } + tuple & operator = ( const tuple & other ) = default; using std::tuple < Ts ... >::operator =; #endif diff --git a/alib2std/src/extensions/unordered_map.hpp b/alib2std/src/extensions/unordered_map.hpp index fa3eb659ef..d24d60fdd7 100644 --- a/alib2std/src/extensions/unordered_map.hpp +++ b/alib2std/src/extensions/unordered_map.hpp @@ -27,23 +27,15 @@ public: unordered_map ( ) noexcept : std::unordered_map < T, R, Hash, KeyEqual, Alloc > ( ) { } - unordered_map ( const unordered_map & other ) noexcept : std::unordered_map < T, R, Hash, KeyEqual, Alloc > ( other ) { - } + unordered_map ( const unordered_map & other ) = default; - unordered_map ( unordered_map && other ) noexcept : std::unordered_map < T, R, Hash, KeyEqual, Alloc > ( std::move ( other ) ) { - } + unordered_map ( unordered_map && other ) = default; using std::unordered_map < T, R, Hash, KeyEqual, Alloc >::unordered_map; - unordered_map & operator = ( unordered_map && other ) noexcept { - static_cast < std::unordered_map < T, R, Hash, KeyEqual, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + unordered_map & operator = ( unordered_map && other ) = default; - unordered_map & operator = ( const unordered_map & other ) noexcept { - static_cast < std::unordered_map < T, R, Hash, KeyEqual, Alloc > & > ( * this ) = other; - return * this; - } + unordered_map & operator = ( const unordered_map & other ) = default; using std::unordered_map < T, R, Hash, KeyEqual, Alloc >::operator =; #endif diff --git a/alib2std/src/extensions/vector.hpp b/alib2std/src/extensions/vector.hpp index 6a9d671f1a..0f76931456 100644 --- a/alib2std/src/extensions/vector.hpp +++ b/alib2std/src/extensions/vector.hpp @@ -27,23 +27,15 @@ public: vector ( ) noexcept : std::vector < T, Alloc > ( ) { } - vector ( const vector & other ) noexcept : std::vector < T, Alloc > ( other ) { - } + vector ( const vector & other ) = default; - vector ( vector && other ) noexcept : std::vector < T, Alloc > ( std::move ( other ) ) { - } + vector ( vector && other ) = default; using std::vector < T, Alloc >::vector; - vector & operator = ( vector && other ) noexcept { - static_cast < std::vector < T, Alloc > & > ( * this ) = std::move ( other ); - return * this; - } + vector & operator = ( vector && other ) = default; - vector & operator = ( const vector & other ) noexcept { - static_cast < std::vector < T, Alloc > & > ( * this ) = other; - return * this; - } + vector & operator = ( const vector & other ) = default; using std::vector < T, Alloc >::operator =; #endif -- GitLab