@@ -2822,7 +2822,7 @@ struct VirtualTraits {
28222822 // ! etc.
28232823 using virtual_type = detail::unspecified;
28242824
2825- // ! Return a reference to the object to use for dispatch.
2825+ // ! Returns a reference to the object to use for dispatch.
28262826 // !
28272827 // ! Return a reference to the object to use for dispatch. `arg` may not be
28282828 // ! copied, moved or altered in any way.
@@ -2831,13 +2831,14 @@ struct VirtualTraits {
28312831 // ! @return A reference to an object.
28322832 static auto peek (T arg) -> const virtual_type&;
28332833
2834- // ! Cast virtual argument.
2834+ // ! Casts a virtual argument.
28352835 // !
2836- // ! Cast virtual argument to the type expected by the overrider.
2836+ // ! Casts a virtual argument to the type expected by the overrider.
28372837 // !
2838- // ! @tparam U The type to cast to.
2839- // ! @param arg An argument passed to the method call.
2840- // ! @return A reference to an object.
2838+ // ! @tparam T The type of a virtual parameter of a method.
2839+ // ! @tparam U The type of a virtual parameter of an overrider.
2840+ // ! @param arg The argument passed to a method call.
2841+ // ! @return A reference to the argument, cast to `U`.
28412842 template <typename U>
28422843 static auto cast (T arg) -> U;
28432844
@@ -2846,9 +2847,9 @@ struct VirtualTraits {
28462847 // ! If `T` is a smart pointer, `rebind<U>` is the same kind of smart
28472848 // ! pointer, but pointing to a `U`.
28482849 // !
2849- // ! @note `rebind` must be implemented @em only for smart pointer types that
2850- // ! can be used as object pointers by @ref virtual_ptr in place of plain
2851- // ! pointers.
2850+ // ! @note `rebind` must be implemented @em only for smart pointer classes
2851+ // ! that can be used as object pointers by @ref virtual_ptr in place of
2852+ // ! plain pointers.
28522853 // !
28532854 // ! @tparam U The new element type.
28542855 template <class U >
0 commit comments