Add missing standard library includes for self-sufficient headers

Fixes builds with newer GCC/libstdc++ that no longer provide <cstdint>,
<cstring>, <cfloat>, <memory>, <algorithm> etc. transitively. Also
disambiguates visit<> calls in taxonomy.h with the full namespace and
casts the character value in IfcCharacterDecoder to uint32_t to silence
ambiguous overload warnings.
This commit is contained in:
Bruno Postle
2026-06-04 22:23:19 +01:00
committed by Thomas Krijnen
parent 6f93357ed2
commit 78697582f7
13 changed files with 40 additions and 9 deletions
@@ -49,6 +49,7 @@
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <cstdint>
#include <BRepExtrema_TriangleSet.hxx>
#include <BRepLProp_SLProps.hxx>
#include <BVH_BinaryTree.hxx>
@@ -1,5 +1,7 @@
#include "clash_utils.h"
#include <cassert>
#include <cstdint>
#include <cfloat>
#define GU_CULLING_EPSILON_RAY_TRIANGLE FLT_EPSILON*FLT_EPSILON
#define PX_MAX_F32 3.4028234663852885981170418348452e+38F
+1
View File
@@ -8,6 +8,7 @@
#include <mutex>
#include <unordered_set>
#include <cstdint>
#define INCLUDE_SCHEMA(x) STRINGIFY(../../ifcparse/schemas/x.h)
#include INCLUDE_SCHEMA(IfcSchema)
+15 -8
View File
@@ -17,6 +17,13 @@
#include <tuple>
#include <exception>
#include <numeric>
#include <cstdint>
#include <cmath>
#include <array>
#include <limits>
#include <functional>
#include <algorithm>
#include <stdexcept>
#ifndef TAXONOMY_USE_UNIQUE_PTR
#ifndef TAXONOMY_USE_NAKED_PTR
@@ -1623,25 +1630,25 @@ typedef item const* ptr;
// @todo Sad... now that we have templated collection members,
// we can't generally use collection_base anymore as a cast target.
if (auto s = taxonomy::dcast<taxonomy::collection>(i)) {
visit<taxonomy::collection>(s, fn);
ifcopenshell::geometry::visit<taxonomy::collection>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::loop>(i)) {
visit<taxonomy::loop>(s, fn);
ifcopenshell::geometry::visit<taxonomy::loop>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::face>(i)) {
visit<taxonomy::face>(s, fn);
ifcopenshell::geometry::visit<taxonomy::face>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::shell>(i)) {
visit<taxonomy::shell>(s, fn);
ifcopenshell::geometry::visit<taxonomy::shell>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::solid>(i)) {
visit<taxonomy::solid>(s, fn);
ifcopenshell::geometry::visit<taxonomy::solid>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::loft>(i)) {
visit<taxonomy::loft>(s, fn);
ifcopenshell::geometry::visit<taxonomy::loft>(s, fn);
}
else if (auto s = taxonomy::dcast<taxonomy::boolean_result>(i)) {
visit<taxonomy::boolean_result>(s, fn);
ifcopenshell::geometry::visit<taxonomy::boolean_result>(s, fn);
}
else {
fn(i);
@@ -1756,4 +1763,4 @@ typedef item const* ptr;
}
#endif
#endif
+1 -1
View File
@@ -288,7 +288,7 @@ namespace {
if (character >= 0x20 && character <= 0x7e) {
stream.put((char)character);
} else {
stream << "\\u" << character;
stream << "\\u" << static_cast<uint32_t>(character);
}
});
return stream.str();
+1
View File
@@ -35,6 +35,7 @@
#include <iterator>
#include <map>
#include <memory>
#include <cstdint>
#ifdef IFOPSH_WITH_ROCKSDB
+5
View File
@@ -37,6 +37,11 @@
#endif
#include <cstdint>
#include <cstring>
#include <boost/optional.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/logic/tribool.hpp>
#include <boost/dynamic_bitset.hpp>
+2
View File
@@ -30,6 +30,8 @@
#include <utility>
#include <iterator>
#include <cstddef>
#include <cstdint>
#include <cstring>
template <typename T>
struct is_std_tuple : std::false_type {};
+2
View File
@@ -26,8 +26,10 @@
#include <algorithm>
#include <boost/algorithm/string.hpp>
#include <cctype>
#include <cstdint>
#include <iterator>
#include <map>
#include <memory>
#include <string>
#include <vector>
#include <optional>
+1
View File
@@ -33,6 +33,7 @@ namespace rocksdb {
#include <iterator>
#include <map>
#include <memory>
#include <cstring>
#include <type_traits>
#include <iostream>
#include <deque>
+4
View File
@@ -33,6 +33,10 @@ variant - which is the maximum size of its constituents - is reduced.
#include <utility>
#include <memory>
#include <tuple>
#include <cstdint>
#include <cstring>
#include <cstddef>
#include <limits>
#include "exception.h"
+2
View File
@@ -23,6 +23,8 @@
#include "../ifcparse/utils.h"
#include <cstdint>
#ifdef WITH_PROJ
#include <proj.h>
#endif
+3
View File
@@ -4,6 +4,9 @@
#include <rocksdb/options.h>
#include <cstdint>
#include <cstring>
#include "../ifcparse/logger.h"
RocksDbSerializer::RocksDbSerializer(const std::string& input_filename, const std::string& rocksdb_filename, const std::vector<std::string>& skip_supertypes)