• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stillwater-sc / universal / 25645160577
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/issue-1002-ereal-highprec-constants
DEFAULT BRANCH: master
Ran 11 May 2026 01:40AM UTC
Jobs 1
Files 648
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 May 2026 01:12AM UTC coverage: 83.937% (+0.004%) from 83.933%
25645160577

push

github

web-flow
feat(efloat): partial constexpr support (API surface) (#825)

* feat(efloat): partial constexpr support (API surface)

Promote the efloat type's user-facing surface to constexpr where
C++20's transient-allocation rule permits.  efloat carries a
std::vector<uint32_t> _limb member, so any non-empty digit storage
disqualifies the object from being a constexpr variable.  Mirrors
the partial-constexpr playbook from PR #820 (unum), #821 (valid),
and #824 (edecimal).

Promoted (this PR)

  * default constructor: constexpr / noexcept; uses
    std::is_constant_evaluated() to keep parallel invariants -- empty
    _limb at constant evaluation (canonical constexpr zero, recognized
    by iszero() via the _state == Zero branch); push_back(0) at
    runtime to preserve the historical "_limb has one element of
    value 0" representation
  * defaulted copy / move ctor + assignment operators marked constexpr
  * state-only and sign-only selectors marked constexpr:
      iszero, isone, isodd, iseven, ispos, isneg,
      isinf, isnan, isqnan, issnan, sign, scale
  * modifiers clear() and setzero() marked constexpr (std::vector::clear
    is constexpr in C++20; on the empty constant-evaluated state both
    are trivially constexpr-clean)
  * unary operator- marked constexpr (currently a stub copy)
  * compound arithmetic stubs (+= -= *= /= and double overloads)
    marked constexpr -- currently no-ops, so the surface lights up at
    constant evaluation today and real semantics will inherit
    constexpr-ness when implemented
  * free comparison operators (==, !=, <, <=, >, >=) marked constexpr
    (currently stubs returning constants)
  * free binary arithmetic operators (+, -, *, /) marked constexpr
    (compose from the constexpr-marked compounds)
  * matching friend declaration of operator== updated to constexpr

Drive-by fix: setzero() left _state = Normal (delegating to clear())

  Originally setzero() called clear() which sets _state = Normal,
  meaning iszero()... (continued)

15 of 15 new or added lines in 1 file covered. (100.0%)

45876 of 54655 relevant lines covered (83.94%)

6475327.17 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25645160577.1 11 May 2026 01:40AM UTC 648
83.94
GitHub Action Run
Source Files on build 25645160577
  • Tree
  • List 648
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25645160577
  • 84ffa7c7 on github
  • Prev Build on main (#25641836814)
  • Next Build on main (#25646959884)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc