unused<T>
От: remark Россия http://www.1024cores.net/
Дата: 13.08.10 11:41
Оценка: 39 (3) -1
Из той же оперы, что и auto_value&lt;&gt;
Автор: Кодт
Дата: 16.01.03
.

Иногда приходится писать код типа:
DWORD err = GetLastError();
(void)err;

BOOL res = CloseHandle(f);
assert(res);
(void)res;


Дабы сократить 1 строчку, подумалось:
template<typename T>
class unused
{
public:
    unused(T v) : v(v) {}
    unused(unused const& v) : v(v.v) {}
    operator T () const {return v;}
private:
    void operator = (unused const&);
    T volatile const v;
};

unused<DWORD> err = GetLastError();

unused<BOOL> res = CloseHandle(fout);
assert(res);


З.ы. volatile важен, т.к. обычно его забываешь ставить, и потом в релизе до истины уже не докапаешься.


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.