我正在开发一个日志/跟踪单元(请不要指向现有的,这是为了体验和结果)。
要获得运行时调用堆栈跟踪,想法是首先构造一个TraceObject
实例,一个函数被输入,它携带当前类和函数的信息。有点类似于:
TraceObject to( "MyClass", "myClassFunction" );
TraceObject
推this
入每个线程堆栈的构造函数,析构函数再次弹出它。因此可以在堆栈中查询调用堆栈。
我对这个工作感到满意。但是,有一个小告密:对象to
。按照设计,它永远不会被这个名称所指。因此,它不需要有一个名称,尤其是可能与客户端使用的任何标识符(或者,在_
前缀的情况下,实现)冲突的名称。
tl;博士
是否可以在堆栈上创建一个匿名的非临时对象(即,一个将一直存在到函数返回但没有标识符的对象),如果是,它将如何完成?