[英]How to get caller of a specific constructor?
我知道用宏包装可以用于获取函数的调用者。 但是就构造函数而言,据我所知这是不可能的。 我没有使用gcc,所以backtrace()函数对我来说不是一个选择。
编辑:我正在使用msvc。
一个理想的工具是调试器,它不需要您对程序进行任何修改。
但是,如果您确实希望在程序中本地获取调用者,这也是可能的-但在不使用平台特定或包装器库的情况下,在标准C ++中是不可能的(除非通过修改构造函数和使用宏技巧)。
我没有使用gcc,所以backtrace()函数对我来说不是一个选择。
然后,您将需要确定正在使用哪个编译器,并使用它们为堆栈展开提供的任何替代方法。
您可以使用一个可移植的库libunwind,它可以在不访问backtrace的情况下工作。 但是,它似乎没有移植到Windows。
我知道用宏包装可以用于获取函数的调用者
包装初始化应该以类似的方式进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.