константа и не константа одновременно(почти)
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.05.15 07:17
Оценка:
привет!

есть такой тип:
template<typename T>
struct pair {
   const char *key; // никогда не изменяется, назначается только при инициализации 'pair'
   const T     &val;
};

template<typename T>
void set(const pair<T> &pair) {
   // тут все хорошо, используем 'pair.key' и 'pair.val'
}
template<typename T>
void get(pair<T> &pair) {
   // тут все плохо, ибо 'pair.val' - константная ссылка
}

использовать это дело предполагается так:
pair<int> pi{"int", 33};

set(pair<int>{"int", 33});
set(pi);

////////////////////////////////
get(pi); // читаем в 'pair<int>'
int rint=0;
get(pair<int>{"int", pint}); // читаем в 'pint' являющийся lvalue, 'pair<int>' же - rvalue


как победить?


спасибо.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 08.05.2015 7:27 niXman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.