C++ 如何打印正在使用构造函数的对象的名称

C++ 如何打印正在使用构造函数的对象的名称,c++,c++11,C++,C++11,我正在寻找一种从构造函数内部打印实例构造函数所调用的变量名称的方法: #include <iostream> struct A { A() { std::cout << "variable name = " /*magic here*/ << "\n"; } }; int main() { A abc; // should output "variable name = abc" A def; // sho

我正在寻找一种从构造函数内部打印实例构造函数所调用的变量名称的方法:

#include <iostream>

struct A {
    A() {
       std::cout << "variable name = " /*magic here*/ << "\n";
    }
};

int main() {
    A abc;  // should output "variable name = abc"
    A def;  // should output "variable name = def"
}
#包括
结构A{
(){

std::cout我认为没有任何不使用宏的方法可以做到这一点

如果你的类有一个采用const char*的构造函数,那么你可以使用一个假的构造函数宏将变量名传递到真正的构造函数中。我不知道你为什么要这样做,这是一个非常丑陋的解决方案


#定义构造(类型、名称)类型名称(#名称)

这个问题的措辞非常糟糕。我们不知道你的意思。请用代码举例说明你的意思。我们不知道你所说的
是什么意思。你真正想解决的是什么高级问题?请。你的问题就是一个很好的例子。而且,请展示你期望的结果。但是你为什么要这样做呢“知道名字吗"?我们现在唯一能告诉你的是这是不可能的。但是如果你告诉我们你为什么要那么命名,你试图解决的实际问题是什么,而不是仅仅告诉我们你对这个未知问题的解决方案并要求我们帮你解决,那么也许我们可以帮助你找到另一个解决方案,一个并非不可能的解决方案。这就是为什么XY的问题是,有人告诉我们一个未知问题的解决方案,并要求我们帮助解决一些问题。在不知道问题的情况下,这些问题是困难的或不可能的。@Shryanmehta那么,如果你签署了保密协议,为什么还要问最初的问题?无论如何,我怀疑你是否需要保密协议来说类似的话“我正在尝试调用一个函数,给定它的名称”或“我正在进行名称查找”或“我正在编写一个工具,需要获取编译时信息”或类似的内容。如果你以这种方式提问,我们不会从你那里得到商业机密。