https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103992
Bug ID: 103992 Summary: common_iterator(const common_iterator<_It2, _Sent2>& __x) uses new instead of construct_at Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hewillk at gmail dot com Target Milestone: --- common_iterator(const common_iterator<_It2, _Sent2>& __x) and common_iterator(const common_iterator& __x) still use new. #include<iterator> template<class T> using CI = std::common_iterator< std::reverse_iterator<T>, std::unreachable_sentinel_t>; static_assert([] { CI<const int*> it1 = CI<int*>{}; return true; }()); https://godbolt.org/z/aT431jrhd