我正在编写带有大量STL向量的代码.我想我已经构建了它,所以它都是引用和移动构造函数,但我想要一种自动化的方法来确定.有没有办法在调用复制构造函数时获得警告或错误?
我不想编写自己的vector类,也不想修改STL头.请不要在编写自己的课程时将这些类似问题的副本标记为:我不想这样做.
除了禁用存储在向量内的类型的复制构造函数和复制赋值运算符之外,如果不修改向量源代码,您将无法禁用向量副本.
但是,您确实有一些选择.
您可以检查二进制文件中是否存在向量复制构造函数; 如果没有使用优化器应该消除它.
您可以检测向量中包含的类型的复制构造函数,并查看它的调用频率.
您可以在复制构造函数(或其调用的其中一个辅助函数)上放置一个断点,并在命中时检查调用堆栈以查看它是否是调用它的复制构造函数.
或者,您可以使用自己的类临时包装vector,并删除其复制构造函数.