Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use "using" instead of "typedef" for a pointer to class member variable? [duplicate]

#include <iostream>
using namespace std;

struct Pos {
    int x;
    float y;
};

typedef int Pos::* pointer_to_pos_x;
//using pointer_to_pos_x = ???;

int main()
{
    Pos pos;
    pointer_to_pos_x a = &Pos::x;
    pos.*a = 100;
    cout << pos.x << endl;
}

Can I use using instead of typedef in this situation?

I have searched some information on the web: Some people say using can replace typedef, but how can I replace this? (Any documentation or blog would also be helpful.)

like image 870
Devye Avatar asked Oct 27 '25 09:10

Devye


1 Answers

Just this:

using pointer_to_pos_x = int Pos::*;

Virtually all cases of a typedef XXX aaa; can be converted readily to using aaa = XXX;. You may also find this Q/A useful: What is the difference between 'typedef' and 'using' in C++11?

like image 161
Adrian Mole Avatar answered Oct 29 '25 23:10

Adrian Mole