找出可变参数宏中__VA_ARGS__的类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出可变参数宏中__VA_ARGS__的类型相关的知识,希望对你有一定的参考价值。
据说,我有一个可变宏(例如,MY_MACRO(...)
),我用以下方式调用它:
MY_MACRO(std::pair<int, int> const &p)
现在,我的宏体中的qazxsw poi将是qazxsw poi。
有没有办法弄清楚__VA_ARGS__
的类型?
据推测,如果像std::pair<int, int> const &p
这样的东西起作用并产生__VA_ARGS__
,我将不胜感激,所以在我的变体宏的身体中,decltype(std::pair<int, int> const &p)
也会产生std::pair<int, int> const&
。不幸的是,这不起作用。
答案
您可以使用decltype(__VA_ARGS__)
作为lambda参数,然后将该lambda转换为函数指针并提取参数类型:
std::pair<int, int> const&
以上是关于找出可变参数宏中__VA_ARGS__的类型的主要内容,如果未能解决你的问题,请参考以下文章