Please refactor and decorate iterator types/class templates and their key functions (e.g. copy constructors) with appropriate attributes ( [[clang::trivial_abi]], noexcept, constexpr) so they are recognized at the language level (rather than just by the optimizer) as trivial or atleast noexcept (copyable etc.) - so that, for example, I can hide/'pimpl' them behind something like https://github.com/microsoft/proxy and have it use 'trivial' (memcpy) code for copy construction and assignment (instead of going through vtable pointers).
Please refactor and decorate iterator types/class templates and their key functions (e.g. copy constructors) with appropriate attributes ( [[clang::trivial_abi]], noexcept, constexpr) so they are recognized at the language level (rather than just by the optimizer) as trivial or atleast noexcept (copyable etc.) - so that, for example, I can hide/'pimpl' them behind something like https://github.com/microsoft/proxy and have it use 'trivial' (memcpy) code for copy construction and assignment (instead of going through vtable pointers).