dxx-rebirth/common/include
Kp e3dbe7a07c Add workaround for gcc-4.7 type inheritance quirk
In gcc-4.7, a type inherited via using is distinct from a type defined
by using.

	$ cat t.cpp
	template <typename>
	class A
	{
	public:
	    typedef void a;
	    typedef void b;
	};

	template <typename T>
	class B : protected A<T>
	{
	protected:
	    using typename A<T>::a;
	    using b = typename A<T>::b;
	public:
	    static inline a f1();
	    static inline b f2();
	};

	template <typename T>
	typename B<T>::a B<T>::f1() {}	// fails for gcc-4.7, works in later

	template <typename T>
	typename B<T>::b B<T>::f2() {}	// works in both

	$ gcc-4.7 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
	t.cpp:21:18: error: prototype for 'typename B<T>::a B<T>::f1()' does not match any in class 'B<T>'
	t.cpp:16:18: error: candidate is: static typename A<T>::a B<T>::f1()
	t.cpp:16:18: warning: inline function 'static typename A<T>::a B<T>::f1() [with T = int; typename A<T>::a = void]' used but never defined [enabled by default]

	$ gcc-4.8 -Wall -Wextra -std=gnu++0x -O2 -c t.cpp
	$

Fixes: 8b7c5c3e2b ("Rewrite valptridx")
2015-08-05 02:59:03 +00:00
..
editor Fix check_header_includes build 2015-07-25 23:10:45 +00:00
3d.h Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
args.h Guard args.h for LTO -Wodr 2015-07-18 21:01:56 +00:00
byteutil.h Always parse WORDS_BIGENDIAN and !WORDS_BIGENDIAN 2015-06-13 22:42:21 +00:00
compiler-addressof.h
compiler-array.h
compiler-begin.h
compiler-exchange.h
compiler-integer_sequence.h Make template alias support mandatory 2015-08-03 03:11:25 +00:00
compiler-lengthof.h
compiler-make_unique.h
compiler-range_for.h
compiler-static_assert.h Improve static_assert test 2015-07-09 03:12:45 +00:00
compiler-type_traits.h Diagnose including compiler-type_traits without dxxsconf.h 2015-07-25 23:10:45 +00:00
console.h Reduce cvar.h includes 2015-06-07 16:20:46 +00:00
countarray.h
digi_audio.h
digi_mixer.h Fix check_header_includes build 2015-07-25 23:10:45 +00:00
digi_mixer_music.h
dxxerror.h Add non-aborting UserError for user-caused fatal errors 2015-06-16 03:15:40 +00:00
event.h Remove set_default_handler 2015-05-14 02:23:13 +00:00
fmtcheck.h
func.h
fwd-gr.h Use forward-declaration header for gr.h 2015-07-25 23:10:45 +00:00
fwd-partial_range.h Use __builtin_object_size to check some unchecked ranges 2015-07-25 23:10:47 +00:00
fwdvalptridx.h Add workaround for gcc-4.7 type inheritance quirk 2015-08-05 02:59:03 +00:00
gr.h Use accessor for grs_bitmap::bm_type 2015-07-25 23:10:47 +00:00
grdef.h Use accessor for grs_bitmap::bm_type 2015-07-25 23:10:47 +00:00
hash.h
highest_valid.h Use T::index_type for highest_valid 2015-07-13 01:09:36 +00:00
hmp.h Convert most global arrays to array<> 2015-04-02 02:36:52 +00:00
iff.h Use forward-declaration header for gr.h 2015-07-25 23:10:45 +00:00
ignorecase.h
internal.h Make OGL_ENABLE safe for single statement blocks 2015-04-02 02:36:54 +00:00
interp.h Always parse WORDS_BIGENDIAN and !WORDS_BIGENDIAN 2015-06-13 22:42:21 +00:00
joy.h
jukebox.h Remove unused jukebox functions 2015-03-28 17:18:02 +00:00
key.h Cache modifier keys 2015-05-28 03:08:38 +00:00
loadgl.h
makesig.h
maths.h Remove redundant fix_sincos calls 2015-06-02 03:03:32 +00:00
messagebox.h
mouse.h Construct d_event_mousebutton 2015-05-28 03:08:39 +00:00
ntstring.h Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
null_sentinel_iterator.h Use range_for for PHYSFS archive types 2015-07-18 21:01:55 +00:00
ogl_extensions.h Remove unused ogl_extensions_init return value 2015-03-25 01:59:21 +00:00
ogl_init.h Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
ogl_sync.h Fix check_header_includes build 2015-07-25 23:10:45 +00:00
pack.h Expand DXX_CXX11_EXPLICIT_DELETE 2015-05-01 02:18:33 +00:00
palette.h Remove unused gr_make_blend_table 2015-04-26 20:15:57 +00:00
partial_range.h Reduce partial_range error argument shuffling 2015-08-03 03:11:24 +00:00
pcx.h
physfs-serial.h
physfs_list.h Store PHYSFS_list element count in list when needed 2015-05-09 17:38:57 +00:00
physfsx.h Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
poison.h
pstypes.h change u_int*_t to C99 standard uint*_t 2015-05-18 17:12:53 -07:00
rbaudio.h Enable -Wunused-parameter 2015-04-26 20:15:56 +00:00
reverse.h
rle.h
serial.h Support serializing enum class 2015-07-18 21:01:55 +00:00
strutil.h Fix check_header_includes build 2015-07-25 23:10:45 +00:00
texmap.h
timer.h Shorten timer_delay 2015-05-09 17:39:01 +00:00
u_mem.h Parenthesize static_assert expression 2015-07-09 03:12:45 +00:00
ui.h Warn when UI_GADGET_* are immediately freed 2015-06-13 22:42:19 +00:00
valptridx.h Remove default argument for basic_ptr(reference,array) 2015-07-29 03:05:28 +00:00
varutil.h
vecmat.h Add helper macro DXX_CONSTANT_TRUE 2015-07-29 03:05:28 +00:00
window.h