diff --git a/alib2std/src/extensions/forward_tree.hpp b/alib2std/src/extensions/forward_tree.hpp index 1960275517f4f9f2a32e45672edd707df5c9d4fb..6a5baabbf7f1ed75cffe36411753e2122601a118 100644 --- a/alib2std/src/extensions/forward_tree.hpp +++ b/alib2std/src/extensions/forward_tree.hpp @@ -427,7 +427,7 @@ private: size_t insertedSize = end - begin; if ( !arityChecker ( * under, children.size ( ) + insertedSize ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); std::vector < tree_node > inserted; @@ -475,7 +475,7 @@ public: public: forward_tree ( const T & data, const std::vector < forward_tree < T, ArityChecker > > & subtrees, ArityChecker arityChecker = ArityChecker ( ) ) : arityChecker ( arityChecker ), root ( data, fromTree ( subtrees ) ) { if ( !arityChecker ( data, subtrees.size ( ) ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); } template < typename ... Types > @@ -559,7 +559,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) + 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); children.push_back ( tree_node ( value, { } ) ); } @@ -568,7 +568,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) + 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); children.push_back ( tree_node ( std::move ( value ), { } ) ); } @@ -579,7 +579,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) - 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); typename std::vector < tree_node >::iterator iter = children.erase ( position.getUnderlyingIterator ( ) ); typename std::vector < tree_node >::const_iterator res = iter; @@ -618,7 +618,7 @@ private: SubscriptAccess & operator =( const T & data ) { if ( !arityChecker ( data, node->getChildren ( ).size ( ) ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); node->getData ( ) = data; diff --git a/alib2std/src/extensions/tree.hpp b/alib2std/src/extensions/tree.hpp index 0489c92cfc98f4cc136a9b62dae3172327077163..2a0a9170fc07ed709ed7166bcafcdc574eb3471b 100644 --- a/alib2std/src/extensions/tree.hpp +++ b/alib2std/src/extensions/tree.hpp @@ -444,7 +444,7 @@ private: size_t insertedSize = end - begin; if ( !arityChecker ( * under, children.size ( ) + insertedSize ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); std::vector < tree_node > inserted; @@ -498,7 +498,7 @@ public: public: tree ( const T & data, const std::vector < tree < T, ArityChecker > > & subtrees, ArityChecker arityChecker = ArityChecker ( ) ) : arityChecker ( arityChecker ), root ( data, fromTree ( subtrees ) ) { if ( !arityChecker ( data, subtrees.size ( ) ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); } template < typename ... Types > @@ -582,7 +582,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) + 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); children.push_back ( tree_node ( value, { } ) ); std::prev ( children.end ( ) )->parent = const_cast < tree_node * > ( & under.getTreeNode ( ) ); @@ -592,7 +592,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) + 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); children.push_back ( tree_node ( std::move ( value ), { } ) ); std::prev ( children.end ( ) )->parent = const_cast < tree_node * > ( & under.getTreeNode ( ) ); @@ -604,7 +604,7 @@ public: std::vector < tree_node > & children = const_cast < std::vector < tree_node > & > ( under.getTreeNode ( ).getChildren ( ) ); if ( !arityChecker ( * under, children.size ( ) - 1 ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); typename std::vector < tree_node >::iterator iter = children.erase ( position.getUnderlyingIterator ( ) ); typename std::vector < tree_node >::const_iterator res = iter; @@ -643,7 +643,7 @@ private: SubscriptAccess & operator =( const T & data ) { if ( !arityChecker ( data, node->getChildren ( ).size ( ) ) ) - throw "Invalid number of children"; + throw std::length_error ( "Invalid number of children" ); node->getData ( ) = data;