List<T>::List( List const& o ) : List( o.size ) { if( std::is_pod<T>::value ) memcpy( buf, o.buf, o.ByteSize() ); else for( int i = 0; i < o.size; ++i ) new ( buf + i ) T( o.buf[ i ] ); size = o.size; }