C++ macro '##' doesn't work after '->' operator

后端 未结 3 1687
青春惊慌失措
青春惊慌失措 2021-01-01 11:47

I have a shared_ptr object x, which has get and set methods as follows:

x->a_value();
x->set_a_value();
x->b_value();
x->set_b_value();
         


        
3条回答
  •  猫巷女王i
    2021-01-01 12:37

    What it says on the tin: ->a is not a single, valid preprocessor token: it's two tokens. You do not need to paste here.

    #define MAC(type) \
      x->type##_value();
    

提交回复
热议问题