数组的安全复制

如果你要制作一个数组clone,你该怎么做?

template <class T> 
T* NewCopy( const T* src,size_t srcsize, size_t destsize ) { 
    assert( destsize >= srcsize ); 
    T* dest = new T[destsize]; //可能会抛出bad_alloc异常 
    try { 
        std::copy( src, src+srcsize, dest ); 
    } 
    catch(...) { 
        delete[] dest; // delete 语句永远都不会抛出异常 
        throw; // 重新抛出异常 
    } 
    return dest; 
}

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥