Кто-нибудь может направить меня, как view_as
может быть использован. Или, может быть, пример в библиотеке многоугольника Boost?
В документации упоминается, что мы можем печатать приведение от одного к другому.
http://www.boost.org/doc/libs/1_58_0/libs/polygon/doc/gtl_polygon_90_concept.htm
Документация boost :: polygon невелика, но, по крайней мере, в этой области она кажется достаточно ясной:
Объект, который является моделью
polygon_90_concept
может рассматриваться как модель любого из его уточнений, если он определен во время выполнения, чтобы соответствовать ограничению этих концепций. Это кастинг концепции осуществляется черезview_as<>()
функция.
view_as<rectangle_concept>(polygon_90_object)
Возвращаемое значение
view_as<>()
может быть передан в любой интерфейс, который ожидает объект концептуального типа, указанный в его параметре шаблона.