template< class T > typename std::vector::size_type insert_range( std::vector& rVector, typename std::vector::size_type nIndex, typename std::vector::size_type nCount ) { if( nCount ) { if( nIndex >= rVector.size()) { // append at end nIndex = rVector.size() ); // cap to end rVector.resize( nIndex + nCount ); } else { // insert typename std::vector::iterator aIter( rVector.begin() + nIndex ); rVector.insert( aIter, nCount, 0 ); } } return nIndex; }