https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118053
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-reduction | --- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- // PR c++/118053 template <typename> struct allocator_traits; template <typename> struct allocator; template <typename _Tp> struct allocator_traits<allocator<_Tp>> { using pointer = _Tp *; }; struct __alloc_traits : allocator_traits<allocator<int>> {}; struct _Vector_base { __alloc_traits::pointer _M_finish; struct _Vector_impl { _Vector_impl(_Vector_impl &&); } _M_impl; }; template <typename _Tp> struct vector : _Vector_base { vector(_Tp); constexpr auto back() { return *_M_finish; } }; template <typename Funct> void run(Funct funct) { funct(1); } vector<int> runner() try { vector vec{1}; run([&](auto) { vec.back(); }); return vec; } catch (...) { return 1; }