The template parameter D for view_interface may be an
incomplete type.
Before any member of the resulting specialization of
view_interface other than special member functions
is referenced, D shall be complete, and
model both derived_from<view_interface<D>> and view.