I have a C++ class that overloads operator[]
, the array subscript/brackets operator. This is awfully convenient outside of my class, where I can write foo[bar
]. However, I can't figure out how to use this notation when I'm implementing methods inside my class.
I know I can write operator[](bar)
or this->operator[](bar)
but those are fairly unwieldy and take away a lot of the convenience of the operator in the first place. (I also know I can just add a new method that calls the operator.) Is there a way I can write this[bar]
or this->[bar]
or something similarly nice?
(*this)[bar];
works fine for me.
Use
(*this)[bar]
to call the operator[]
of the instance object.
Assuming bar
is an integer (or can be auto-converted to one), this[bar]
treats the this
pointer as an array and indexes the bar
-th element of that array. Unless this
is in an array, this will result in undefined behavior. If bar
isn't integer-like, expect a compile-time error.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With