https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88084
Bug ID: 88084 Summary: basic_string_view::copy doesn't use Traits::copy Product: gcc Version: 8.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: n.eugene536 at gmail dot com Target Milestone: --- Target: x86_64-linux-gnu gcc version 8.2.0 (Ubuntu 8.2.0-1ubuntu2~18.04) Case: g++ a.cpp -std=c++17 struct my_trait : std::char_traits<char> { static char* copy(char* dest, const char* src, std::size_t count) { std::transform(src, src + count, dest, [](char c) { return std::tolower(c); } ); return dest; } }; int main() { std::basic_string_view<char, my_trait> s2("AB"); char buf[3]{}; s2.copy(buf, 3); std::cout << buf << std::endl; } The output is: AB but expected: ab In Standard: basic_string_view::copy has to be equivalent to traits::copy