下面有一个名为relu()
的函数:
void mModelRecorder::relu(Data::TensorIterator inputTensor){}
我这样称呼:
rc.relu(conv);
在relu内部,我想获取传入的参数inputTensor的名称(作为字符串)。
在本例中为“conv”。
我的问题是我怎样才能做到这一点。
我刚刚学习函数模板和迭代器,所以我不太明白 inputTensor 是什么。
这是TensorIterator
的定义。
最佳答案
这在当前版本的 C++ 标准 (C++17) 下是不可能的。在 C++20 中有关于 Reflection 的提案,但我对它们不是很熟悉,并且老实说,我严重怀疑它们中的任何一个是否会涵盖这种情况,因为它看起来非常复杂和不寻常。
如果您想根据传递对象的位置来传递某种信息,正确的做法是将这些附加信息存储在对象本身内。
关于C++ 如何获取传递给函数的参数名称(STL 迭代器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51765183/