Macro BOOST_MOVE_RET
BOOST_MOVE_RET
Synopsis
BOOST_MOVE_RET(RET_TYPE, REF)
Description
Этот макрос используется для достижения портативной семантики возврата движения. Стандарт C++11 позволяет имплицитно перемещать возвраты, когда объект, подлежащий возврату, обозначен значением l и:
Критерии для исключения операции копирования выполнены ИЛИ
Критерии будут выполнены за исключением того факта, что исходный объект является параметром функции
.
Для компиляторов, соответствующих C++11, эти макросы уступают только REF:<return BOOST_MOVE_RET(RET_TYPE, REF);
>-><return REF;
>
Для компиляторов без ссылок на значение r этот макрос делает явное движение, если активирована эмуляция движения и тип возврата (RET_TYPE) не является ссылкой.
Для несоответствующих компиляторов со ссылками на rvalue, такими как Visual 2010 & 2012, выполняется явное движение, если RET_ Тип не является ссылкой.
Осторожность: При использовании этого макроса в несоответствующих компиляторах или компиляторах C++03 движение будет выполняться даже в том случае, если стандарт C++11 не допускает его (например, возврат статической переменной). Пользователь несет ответственность за использование этого макроса только для возврата локальных объектов, отвечающих критериям C++11.