Здравствуйте, remark, Вы писали:
R>R> unused(unused const& v) : v(v.v) {}
R>private:
R> void operator = (unused const&);
R>
Зачем это всё? Зачем свой конструктор копии и зачем запрет присваивания?
Или фишка в том, что нельзя поменять? Тогда, по идее, нужен не operator T, а operator const T&
R>З.ы. volatile важен, т.к. обычно его забываешь ставить, и потом в релизе до истины уже не докапаешься.
Ну и название мне не нравится, конечно. Фраза
unused<DWORD> res = GetLastError();
checkError( res );
нифига не читабельная. Может как-то типа debug_variable назвать, например?
R>
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском