草庐IT

myarray_copy

全部标签

c++ - __has_trivial_copy 在 clang 和 gcc 中的行为不同。谁是对的?

std::is_trivially_copyable在这两个编译器中仍然不被支持(至少gcc4.6是这样)。但是两者都提供了做得很好的__has_trivial_copy指令。除非涉及到已删除的复制构造函数。structA{A(Aconst&)=delete;};__has_trivial_copy(A)在clang中返回1,在gcc中返回0。我正在研究标准,但找不到说明删除复制构造函数时类是否仍被视为可平凡复制的条款。谁是对的?我倾向于相信gcc是正确的,因为structA根本不可复制,更不用说可复制了。此外,有一个广泛的共识,即删除的复制构造函数可以被视为私有(private)声明

c++ - 错误 C4996 : 'std::_Copy_impl' : Function call with parameters that may be unsafe

我知道这个问题在SO中被问过很多次,但这是与其他问题的不同。CompilerError:FunctioncallwithparametersthatmaybeunsafeVisualStudioWarningC4996xutility(2227):warningC4996:'std::_Copy_impl'失败的代码片段DWORDdwNumberOfNames=pExportDirectory->NumberOfNames;LPDWORDdwNames=(LPDWORD)((LPBYTE)hDLL+pExportDirectory->AddressOfNames);std::vecto

c++ - boost 图 : How to copy the nodes and edges of a graph without copying properties?

我正在使用带有捆绑属性的boost图。在我建立第一棵引用树之后。我想要其他几棵具有相同结构和层次结构但具有不同顶点和边缘属性的树。我发现有一个copy_graph方法,但不知道如何使用它来实现我的目的。比如我先创建一个引用树,VertexProperty1和EdgeProperty1是bundledpropertiestypedefboost::adjacency_listGraph;Graphg1;经过一些处理,g1包含了一些顶点和边。然后我想要一个具有不同捆绑属性的复制树。typedefboost::adjacency_listGraph2;copy_graph(g1,g2,???

c++ - 为什么没有 boost::copy_on_write_ptr?

我刚看到this不错的写时复制指针实现。它看起来非常通用和有用,所以我的问题是:这样的类是否包含在任何C++工具包(boost、loki等)中?如果不是,我真的很想知道为什么,因为它是一个非常有用的习惯用法,而且显然通用实现似乎是可行的(就像我链接到的那个)。 最佳答案 关于这种可能性存在很多争论,并且至少有一个建议版本最终以auto_ptr形式出现,用于引用计数的COW指针。不幸的是,COW的时代已经过去了。使COW指针(或COW-whatever)线程安全会引入严重的问题performanceproblems.编辑:重读,我觉得

c++ - 使用 boost::copy_graph 从 grid_graph 复制到 adjacency_list

我正在使用boost图形库并尝试初始化MutableGraph以网格的形式开始生活。边缘会在以后的生活中添加和删除,所以我认为adjacency_list是正确的选择。我对BGL的阅读表明,用这些边缘初始化它的明智方法是利用boost::grid_graph通过使用boost::copy_graph从boost::grid_graph复制可以免费为我制作所有初始边缘。我认为这是有道理的-copy_graph来自VertexListGraph模型的拷贝到一个模型MutableGraph,这正是我所拥有的。我最初尝试使用copy_graph的双参数版本,带着模糊的希望,其余部分的默认值会发

c++ - copy_backward 和 reverse_copy 之间的区别?

我正在阅读C++primer,看到这两个函数似乎具有相同的功能。谁能帮忙告诉我这两者有什么区别?谢谢。 最佳答案 reverse_copy实际上是将元素倒序放置。12345->54321copy_backward只是向后复制元素,但保留它们的相对顺序。123455先复制,但放在最后一个位置。所以你的输出仍然是:12345http://en.cppreference.com/w/cpp/algorithm/copy_backwardCopiestheelementsfromtherange,definedby[first,last),

c++ - STL的copy函数的效率

我正在尝试从条目列表构建一组唯一的单词,每个条目都有一个字符串vector。所以我创建了一个名为Insert的函数,它会像这样为每个条目调用:for(auto&e:_Entries)_Dictionary.Insert(begin(e.getNameWords()),end(e.getNameWords()));_Dictionary类内部有一个集合(STL容器),我写了Insert函数如下:templatevoidInsert(InputIteratorfirst,InputIteratorlast){for(autoit=first;it!=last;++it)_AllWords.

c++ - OpenCV 子矩阵访问 : copy or reference?

如果我使用以下方法从矩阵中提取子矩阵cv::MatA=cv::Mat::ones(4,4);cv::MatB=A(cv::Rect(1,1,2,2));“B”是“A”中这些值的拷贝还是引用了这些值?能否举例说明如何获取(1)子矩阵的拷贝?(2)对子矩阵的引用? 最佳答案 B是A的Mat-header的拷贝,但引用相同的像素。因此,如果您操纵B的像素,A也会受到影响。(1)(“深拷贝”)将是:cv::Rectr(1,1,2,2);cv::MatA=cv::Mat::ones(4,4);cv::MatB=A(r).clone();//n

c++ - 他们是否将 copy_if 添加到 c++0x?

很烦人的是copy_if不在C++中。有谁知道它是否会在C++0x中? 最佳答案 由于C++0x还没有定型,只能看看最近的draft. 关于c++-他们是否将copy_if添加到c++0x?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/794320/

c++ - 在派生类中使用基类 Copy CTOR

我知道有很多关于这个主题的帖子,但我找不到任何帖子来完全回答我的问题。假设我有一个基类和一个派生类,我为它实现了一个CCtor和一个赋值运算符,如下所示:classBase{char*name;....Base(constBase&other):name(nullptr){*this=other}voidoperator=(constBase&other){...Deepcopyofname}}classDerived:publicBase{....Derived(constDerived&other){*this=other;}voidoperator=(constDerived&o