[Bug libstdc++/68350] New: std::uninitialized_copy overly restrictive for trivially_copyable types
philipp.ochsendorf+gcc at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Nov 14 17:26:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68350
Bug ID: 68350
Summary: std::uninitialized_copy overly restrictive for
trivially_copyable types
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: philipp.ochsendorf+gcc at gmail dot com
Target Milestone: ---
I think the following decision is too restrictive:
return std::__uninitialized_copy<__is_trivial(_ValueType1)
&& __is_trivial(_ValueType2)
&& __assignable>::
__uninit_copy(__first, __last, __result);
(cf. stl_uninitialized.h:123ff). The following should be sufficient:
return std::__uninitialized_copy<is_trivially_copyable(_ValueType1)
&& is_trivially_copyable(_ValueType2)
&& __assignable>::
__uninit_copy(__first, __last, __result);
Found this in 5.2.0 and 6.0. Probably it's in versions prior to 5.2.0 as well.
More information about the Gcc-bugs
mailing list