Информация об изменениях

Сообщение оператор индексирования c обратным порядком операндов от 21.03.2015 16:12

Изменено 21.03.2015 16:13 VTT

Имеется код на подобии такого:
int plain_old_array[4];

3[plain_array] = 100;
int last_value = 3[plain_array];

int index = 2;
index[plain_array] = 546;
int value = index[plain_array];
В ходе рефакторинга старого кода осуществляю замену C-style массивов на ::std::array, при которой такие конструкции, естественно, перестают работать. Причем их достаточно большое количество, некоторые даже сделаны в виде макросов.
Я что-то не могу установить для себя, является ли такой вызов оператора индексирования какой-то особой хитростью, на которую автор пошел намеренно, или это просто кривой код. Кто-нибудь сталкивался с подобным?
оператор индексирования c обратным порядком операндов
Имеется код на подобии такого:
int plain_old_array[4];

3[plain_old_array] = 100;
int last_value = 3[plain_old_array];

int index = 2;
index[plain_old_array] = 546;
int value = index[plain_old_array];
В ходе рефакторинга старого кода осуществляю замену C-style массивов на ::std::array, при которой такие конструкции, естественно, перестают работать. Причем их достаточно большое количество, некоторые даже сделаны в виде макросов.
Я что-то не могу установить для себя, является ли такой вызов оператора индексирования какой-то особой хитростью, на которую автор пошел намеренно, или это просто кривой код. Кто-нибудь сталкивался с подобным?
c c++ оператор индексирования