Skip to content

fix: AVR compatibility for runtime headers#101

Merged
thiagoralves merged 1 commit into
mainfrom
development
Apr 15, 2026
Merged

fix: AVR compatibility for runtime headers#101
thiagoralves merged 1 commit into
mainfrom
development

Conversation

@thiagoralves
Copy link
Copy Markdown
Contributor

Summary

  • Relax LocatedVar static_assert for non-64-bit platforms
  • Rename template params to avoid Arduino binary.h macro collisions
  • Add explicit initializer_list include for minimal stdlib environments
  • Guard ostream usage for platforms without I/O streams

All 1505 tests pass. Non-AVR platforms unchanged.

- iec_located.hpp: Relax static_assert for LocatedVar size to only
  enforce on 64-bit platforms (AVR pointers are 2 bytes, not 8)
- iec_traits.hpp: Rename template params B1/B2/B3 to Bnd1/Bnd2/Bnd3
  to avoid collision with Arduino's binary.h macros (B0-B7)
- iec_array.hpp: Add explicit #include <initializer_list> (implicit
  on full stdlib, required when using minimal AVR C++ headers)
- iec_enum.hpp: Guard #include <ostream> and operator<< with
  #ifndef __AVR__ (I/O streams unavailable on AVR)

Non-AVR platforms are unchanged. All 1505 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@thiagoralves thiagoralves merged commit a608f35 into main Apr 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant