Интеграция Boost.Move с другими библиотеками Boost

Rvalue Ссылки обычно повышают производительность в программе на C ++. Но они не доступны напрямую в компиляторе C ++ 03. к счастью boost::move кажется, в состоянии эмулировать это даже в C ++ 03:

Rvalue-ссылки являются основной функцией C ++ 0x, позволяющей семантику перемещения
для значений C ++. Однако нам не нужны компиляторы C ++ 0x, чтобы
Преимущество ходовой семантики. Boost.Move эмулирует семантику перемещения C ++ 0x
в компиляторах C ++ 03 и позволяет писать переносимый код, который работает
оптимально в компиляторах C ++ 03 и C ++ 0x.

Такие вещи, как стандартная библиотека, написанная на C ++ 98/03, не принесут пользы boost::move как они должны быть переписаны. (Новые версии стандартной библиотеки, такие как VC10, были переписаны с использованием ссылок rvalue.)

Но мне интересно, сколько библиотек Boost было переписано с тех пор boost::move был введен в 1.48?

0

Решение

Глядя через Повысьте историю версий, я вижу это Неупорядоченный был обновлен в 1.48 и Нить был обновлен в 1.50. Я не вижу других, которые приняли Boost.Move.

2

Другие решения

Я только что проверил Boost 1.51.0 и кажется, что boost::move поддерживается следующими библиотеками:

  • Контейнер (в том числе vector, list, map так далее.)
  • Межпроцессный (в том числе smart_ptr а также unique_ptr)
  • назойливый
  • Нить
  • Неупорядоченный

Просто искать BOOST_RV_REF в заголовках Boost, что является признаком boost::move служба поддержки.

0

По вопросам рекламы [email protected]