有没有办法在c ++中连接__LINE__和__COUNTER__宏

时间:2016-04-15 20:19:19

标签: c++ macros

我试过这个,但它不起作用:

#include <iostream>
#define CAT(A,B) A##B
#define MY_MACRO CAT(__COUNTER__,__LINE__)
int main(){
    std::cout<<MY_MACRO<<std::endl;
    std::cin.get();
    return 0;
}

它会生成此错误 在函数int main()中 错误 COUNTER ____ LINE 未在此范围内声明

这也没有帮助:

#include <iostream> 
#define F1(x,y) x##y 
#define F2(x,y) F1(x,y) 
#define MY_MACRO F2(COUNTER,LINE)
 int main()
{
 std::cout<<MY_MACRO<<std::endl;
 std::cin.get(); return 0;
 }

它不会连接它只返回LINE宏值,如果你在代码中用一个整数替换它,它将返回那个只与COUNTER没有连接的整数,所以这个问题不是重新连接重复

0 个答案:

没有答案