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

stillwater-sc / universal / 34773573505
86%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fasttakum
DEFAULT BRANCH: master
Ran 13 Sep 2026 06:43PM UTC
Jobs 1
Files 664
Run time 1min
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

13 Sep 2026 06:05PM UTC coverage: 85.706% (+0.02%) from 85.69%
34773573505

push

github

web-flow
refactor(dfixpnt): split dfixpnt into core / manipulators / iostream (#1334) (#1478)

The last number system in the epic. Stacked on the blockdecimal split (#1475):
dfixpnt stores its digits in a blockdecimal, and that is what made a 0-I/O core
possible.

    core.hpp      46,994 lines / 260 headers / 0 I/O-family
    dfixpnt.hpp   64,155 lines / 329 headers / 5 I/O-family  (was 64,162 / 325 / 5)

Zero I/O-family headers is met. Under-45,000 lines is not, by 1,994, and
reporting the number rather than moving the bar: the storage type,
internal/blockdecimal/blockdecimal.hpp, is 36,812 lines on its own (0 I/O since
#1475), and <cmath> and <string> make up most of the rest.

The split

- dfixpnt_impl.hpp included <sstream>, <iostream> and <iomanip>. The
  division-by-zero diagnostic is now fprintf(stderr, ...), behind the same
  !std::is_constant_evaluated() guard.
- operator<< and operator>> were hidden friends DEFINED in the class. They use
  only the public to_string() and assign(), so they are now free function
  templates in the new iostream.hpp, with no friend declaration. Their bodies
  are unchanged.
- assign(const std::string&) and to_string() concatenate and stay in the core.
- The THROW switch moves into dfixpnt_impl.hpp (#1436), and so does its
  FORWARDING: dfixpnt passes its choice on to the blockdecimal building block as
  BLOCKDECIMAL_THROW_ARITHMETIC_EXCEPTION, and that only works if it happens
  before blockdecimal.hpp is included. It now sits directly above that include.
  A dedicated gate proves it: with DFIXPNT_THROW_ARITHMETIC_EXCEPTION=1 and
  core.hpp alone, BLOCKDECIMAL_THROW_ARITHMETIC_EXCEPTION is 1 (static_assert),
  and both a dfixpnt and a blockdecimal divide-by-zero throw.

Self-containment, each found by compiling the header alone:

- attributes.hpp: dfixpnt_range() streams dfixpnt values and names their
  type_tag, so it now includes the core and both text layers.
- manipulators.hpp and mathlib.hpp now include core.hpp; t... (continued)

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

43285 of 50504 relevant lines covered (85.71%)

7163356.38 hits per line

Jobs
ID Job ID Ran Files Coverage
1 34773573505.1 13 Sep 2026 06:43PM UTC 664
85.71
GitHub Action Run
Source Files on build 34773573505
  • Tree
  • List 664
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34773573505
  • 27dde372 on github
  • Prev Build on main (#34771989878)
  • Next Build on main (#34775761975)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc