BOOST_STRONG_TYPEDEF и семантика перемещения - PullRequest
1 голос
/ 05 мая 2020

Из того, что я могу видеть BOOST_STRONG_TYPEDEF не поддерживает семантику перемещения (нет объекта перемещения / назначения).

Это просто недосмотр (никто не обновлял старый макрос) или есть еще фундаментальная причина, по которой сильные определения типов ограничены таким образом?

1 Ответ

1 голос
/ 05 мая 2020

Основная причина заключается в том, что многие библиотеки boost по-прежнему нацелены на стандартные компиляторы pre-c ++ 11 ++, то есть компиляторы, которые не поддерживают семантику перемещения.

Я полагаю, что для некоторых компиляторов уловки в Boost Move могут быть использован, но я не уверен, что это было бы легко применить прозрачно к сильным определениям типов.

Однако я всегда использовал свой собственный строгий typedef для выполнения этой работы, как я предлагал по другим причинам , например, Как я могу строго определить непримитивные типы?


¹ Boost Serialization определенно является одной из этих библиотек

...