C++ 如何获取传递给函数的参数名称(STL 迭代器)

标签 c++

下面有一个名为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/

相关文章:

c++ - 在 C++ 中返回一个 std::vector

c++ - 连接到 Wi-Fi C++

c++ - 访问指向结构中的值是否比访问本地值花费更多时间?

c++ - 在 OpenGL 中向 3D 对象添加光源

c++ - 在C++中将数字添加到数组变量

c++ - Clang 与 Clang tidy 是否检测到相同的警告和错误?

c++ - Visual Studio 2017 无法打开源文件 <windows.h>

c++ - 如何交换 mpl::vector 的两个元素?

c++ - 如何在 C++ 的精确帧中设置 QQuickItem 位置?

c++ - MS VC++ 编译器模棱两可