I'm guessing this just isn't legal in C++, but I thought I'd ask, given a struct that I don't own:
struct foo {
int x;
int y;
int z;
};
I want to write a non-member subscript operator for it:
int& operator [](foo& lhs, const std::size_t rhs) {
switch(rhs) {
case 0U:
return lhs.x;
case 1U:
return lhs.y;
case 2U:
return lhs.z;
default:
return *(&(lhs.z) + rhs - 2U);
}
}
error:
int& operator[](foo&, std::size_t)must be a nonstatic member function