Это моя строка:
«это мое предложение»
Я хотел бы получить этот результат:
«предложение мое это это»
Я хотел бы выбрать несколько слов в строке (в буфере) и слово за словом перевернуть. void fooT (T && x) {} Я могу вызвать его, используя GCC 4.5, с a, ar или arr: int a, & ar = ...
Если я определю функцию, которая принимает параметр ссылки rvalue:
template
void fooT(T &&x) {}
Я могу назвать это, используя GCC 4.5, либо a
, ar
, либо arr
:
int a, &ar = a, &&arr = 7;
fooT(a); fooT(ar); fooT(arr);
Однако, вызывая аналогичный, не шаблонная функция ,
void fooInt(int &&x) {}
с любым из этих трех аргументов завершится ошибкой. Я готовился укрепить свои знания о форварде
, но это сбило меня с курса. Возможно, это GCC 4.5; Я был удивлен, обнаружив, что первый пример из Краткое введение в ссылки на Rvalue также дает ошибку компиляции:
A a;
A&& a_ref2 = a; // an rvalue reference