对于某些类A,我需要知道我正在编写的代码是否触发了对构造函数、复制构造函数或移动构造函数的调用(我可能还想观察更多的东西,但这些就足够了)。
现在,当我是A的作者时,我通常使用如下代码:
class A {
public:
    A()         { cout << "default constructor called\n"; }
    A(A const&) { cout << "copy    constructor called\n"; }
    A(A&&)      { cout << "move constructor called\n";    }
}; 但是,当我必须对标准库类型做同样的事情时,例如std::string,我总是发现自己在调试程序上挥汗如雨,看看我将单步执行哪些调用。有没有更好的方法?请不要建议我修改STL,这是一个显而易见的解决方案,不会缩放(我不会修改所有的标准类型),而且我不认为我会一直访问这些文件(例如在VS中这些是只读文件)
发布于 2016-01-13 07:06:45
https://stackoverflow.com/questions/34754985
复制相似问题