Add missing <cstdint> and <iterator> includes to hll and cpc internal headers - #530
Merged
Merged
Conversation
coupon_iterator.hpp uses uint32_t and std::input_iterator_tag, and compression_data.hpp uses uint8_t and uint16_t, but neither includes the headers that declare them. Both compile today only because of include order. This is the same latent problem as reverse_purge_hash_map.hpp in #499, which surfaced under GCC 15's reduced transitive includes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Coverage Report for CI Build 36500174923Coverage remained the same at 82.389%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
tisonkun
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #499.
#500 fixed the reported GCC 15 failure in
fi/include/reverse_purge_hash_map.hpp(pluscommon/include/serde.hpp) and added GCC 9–15 and C++11–23 jobs to CI. This PR covers the issue's remaining concern that other headers might have the same problem.I compiled each header standalone against libc++ with
-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES, which approximates GCC 15's stricter headers. Every public entry-point header passed. Two internal headers use fixed-width integer types without including<cstdint>and compile only because of include order, which is the same latent condition that brokereverse_purge_hash_map.hpp:hll/include/coupon_iterator.hpp: usesuint32_tandstd::input_iterator_tag.AuxHashMap.hppincludes it right after<iostream>,<memory>and<functional>. Added<cstdint>and<iterator>.cpc/include/compression_data.hpp: usesuint8_tanduint16_t. Currently safe only becausecommon_defs.hppis included first. Added<cstdint>.No behavior change. The full test suite passes locally (Apple clang, C++11).
🤖 Generated with Claude Code