Both Primary_weapon and Secondary_weapon should use the underlying enum
type. Primary_weapon uses its enum type now. Secondary_weapon will use
its enum type eventually. Add appropriate casts to newdemo.cpp to keep
it working when those changes are made.
Newer SCons applied a performance optimization that breaks a technique
used in the check_header_includes=1 build. Switch to a technique that
should work reliably on old and new SCons, although with slightly
reduced efficiency in both cases. The effective performance penalty
should be unnoticeable and only applies to developers building with
check_header_includes=1.
The C++11 required feature string was computed once per configured
environment. When two or more environments were configured in a single
run, this was wasteful. Reorder the SConf tests to precompute the
string.
Commit 957016621e ("Remove support for
Boost.TypeTraits") removed support for any alternative implementation of
<type_traits>, so C++11 <type_traits> is now required. Move it to
the Cxx11RequiredFeature array to combine it with the other required
feature tests.
Fallback support for Boost.Foreach is broken and no one has reported it.
The minimum required gcc version supports range-based for. Recent Clang
supports range-based for. No Microsoft compilers are supported. Remove
support for the fallback Boost.Foreach and move the C++11 range-based
for test to the Cxx11RequiredFeature array.
The compiler may or may not recognize that the temporary T{} passed to
make_unique can be omitted. Help it by passing nothing, then explicitly
clearing the returned data as a separate step.
All users of physfs_list.h included fwd-partial_range.h or
partial_range.h; physfs_list.h did not include either, but assumed one
would be available. Include fwd to fix check_header_includes=1 build.
Fixes: ff67afd440 ("Propagate partial_range up into PHYSFSX_findFiles family")