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


#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.)


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?

Answered By – Adrian Mole

Answer Checked By – Robin (AngularFixing Admin)

Leave a Reply

Your email address will not be published.