dxx-rebirth/common/include
Kp bde498894a Disallow operator=(T &&) && in valptridx
GCC std::remove_if overwrites removed elements using:

	*dstiter = move(*srciter);

This is fine for normal containers, but produces incorrect results when
*dstiter returns a proxy object instead of a reference.  In that case,
the proxy object is move-assigned from the source, then goes out of
scope.  If the move assignment did not write to underlying storage, as
valptridx proxy objects do not, then incorrect results occur.  This
broke ActiveDoor handling (fixed in 4a01fab66d98[1]) and has been a trap
waiting to recur.  Apply reference-qualifiers to valptridx objects so
that move-assignment requires an lvalue for the left-hand side.  This
permits normal use of move-assignment, but forces a compile error if
std::remove_if or similar are used on valptridx proxy objects.

[1]: 4a01fab66d
2018-06-08 04:04:05 +00:00
..
editor Remove write-only Seg_scale 2017-11-05 20:49:09 +00:00
3d.h Hide PF_UVS,PF_LS from OGL build 2017-11-05 20:49:08 +00:00
args.h Move various SDL-only scanline functions to !DXX_USE_OGL 2017-11-01 02:01:20 +00:00
byteutil.h Fix check_header_includes=1 build 2018-06-06 04:53:45 +00:00
compiler-addressof.h
compiler-array.h
compiler-begin.h
compiler-exchange.h
compiler-integer_sequence.h Use compiler-provided integer_sequence when it is depth-efficient 2017-07-26 03:15:59 +00:00
compiler-lengthof.h
compiler-make_unique.h
compiler-poison.h
compiler-range_for.h
compiler-static_assert.h Require C++11 static_assert 2018-05-05 22:33:55 +00:00
console.h Add support for increased precision of gamelog timestamps 2017-12-06 05:14:32 +00:00
countarray.h
cpp-valptridx.h Document valptridx error reporting dispatch macro 2018-02-04 01:56:40 +00:00
digi_audio.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
digi_mixer.h
digi_mixer_music.h
dsx-ns.h Disallow misnesting for d1x+d2x, not for dsx 2017-07-26 03:15:58 +00:00
dxxerror.h Simplify reporting fatal errors 2017-08-11 23:43:52 +00:00
event.h Set d_event type at construction 2018-05-12 18:24:19 +00:00
fmtcheck.h
func.h
fwd-event.h Guard event_get_idle_seconds in #if DXX_USE_EDITOR 2018-02-10 22:23:36 +00:00
fwd-gr.h Pass font to gr_string,gr_printf 2018-05-19 23:21:42 +00:00
fwd-partial_range.h
fwd-valptridx.h Define valptridx factory typedef earlier 2017-10-14 17:10:30 +00:00
fwd-vecmat.h Pass vms_matrix &to vms_matrix_from_quaternion 2018-03-31 21:53:01 +00:00
fwd-window.h Set d_event type at construction 2018-05-12 18:24:19 +00:00
gr.h Add debugging code to trace global canvas updates 2017-11-05 20:49:09 +00:00
grdef.h
hash.h
hmp.h
iff.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
ignorecase.h
internal.h
interp.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
joy.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
jukebox.h
key.h
loadgl.h
makesig.h
maths.h
messagebox.h Fix build break on OSX 2017-09-10 13:27:55 +02:00
mouse.h Set d_event type at construction 2018-05-12 18:24:19 +00:00
ntstring.h
null_sentinel_iterator.h
ogl_extensions.h
ogl_init.h
ogl_sync.h
pack.h
palette.h
partial_range.h Use partial_range for robot_get_anim_state 2018-01-29 01:56:40 +00:00
pcx.h Add support for PNG screenshots 2018-02-18 00:42:42 +00:00
physfs-serial.h
physfs_list.h Remove obsolete serial typedefs 2017-08-11 23:43:54 +00:00
physfsx.h Remove unnecessary inclusions of compiler-static_assert.h 2018-05-05 22:33:55 +00:00
pstypes.h
rbaudio.h
reverse.h
rle.h
serial.h Add operator++,operator-- to base_bytebuffer_t 2018-05-05 22:33:55 +00:00
strutil.h
texmap.h Move various SDL-only texture mapping functions to !DXX_USE_OGL 2017-11-01 02:01:21 +00:00
timer.h
u_mem.h
ui.h Pass canvas to menubar_init 2017-09-26 04:15:50 +00:00
valptridx.h Disallow operator=(T &&) && in valptridx 2018-06-08 04:04:05 +00:00
varutil.h
vecmat.h
window.h Remove stringified enum name from WINDOW_SEND_EVENT 2018-05-12 18:24:19 +00:00