https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99789
Bug ID: 99789 Summary: std::span or std::string_view are not zero-overhead on MS abi Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com Target Milestone: --- The issue is that on Microsoft abi, any trivially copyable type whose size is not 1,2,4,8 bytes will be passed by pointer instead of value. The empty object will also waste one precious register even it does nothing. That means std::span, std::string_view etc incur extremely large overhead.