The STL now defines std::byte so doing using namespace std will conflict will custom definition of byte, which this legacy code is full of.
It looks like NetRadiant went the route of making explicit usage of std:: prefixed types and did not renamed the custom definition of byte, so doing the same reduces diff noise between the two trees.
This also makes the code future proof if the STL decides to define some other types with common name.
This patches replaces all usages of map, pair and vector with std::map, std::pair and std::vector and removes the using namespace std line in stl_check.h.
libs/mathlib.h:132:44: error: reference to ‘byte’ is ambiguous
132 | void NormalToLatLong( const vec3_t normal, byte bytes[2] );
| ^~~~
In file included from /usr/include/c++/11/bits/stl_algobase.h:61,
from /usr/include/c++/11/bits/char_traits.h:39,
from /usr/include/c++/11/ios:40,
from /usr/include/c++/11/ostream:38,
from /usr/include/c++/11/iostream:39,
from libs/missing.h:76,
from radiant/qe3.h:40,
from radiant/stdafx.h:39,
from radiant/bp_dlg.cpp:28:
/usr/include/c++/11/bits/cpp_type_traits.h:404:30: note: candidates are: ‘enum class std::byte’
404 | enum class byte : unsigned char;
| ^~~~
The STL now defines
std::byte
so doingusing namespace std
will conflict will custom definition ofbyte
, which this legacy code is full of.It looks like NetRadiant went the route of making explicit usage of
std::
prefixed types and did not renamed the custom definition of byte, so doing the same reduces diff noise between the two trees.This also makes the code future proof if the STL decides to define some other types with common name.
This patches replaces all usages of
map
,pair
andvector
withstd::map
,std::pair
andstd::vector
and removes theusing namespace std
line instl_check.h
.