如何检测标准库类型

时间:2016-01-12 22:30:14

标签: c++ instrumentation

对于某些类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,这是一个不会扩展的明显解决方案(我不会修改所有标准类型)加上我不认为我&# 39; ll总是可以访问这些文件(例如在VS中这些是只读文件)

1 个答案:

答案 0 :(得分:3)

因为您使用的是Visual Studio。如何使用penter

检查这些:

https://msdn.microsoft.com/en-us/library/c63a9b7h.aspx

https://msdn.microsoft.com/en-us/library/6xy06s51.aspx