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

xlnt-community / xlnt / 67853142-21b5-4e24-946e-3f0c93e251de
84%

Build:
DEFAULT BRANCH: master
Ran 05 Feb 2025 10:09AM UTC
Jobs 1
Files 112
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

05 Feb 2025 10:00AM UTC coverage: 81.87% (-0.1%) from 81.978%
67853142-21b5-4e24-946e-3f0c93e251de

push

circleci

web-flow
Add support for C++20 and C++23, and experimental support for C++26 (#55)

Changes made by this PR:

1. Support `char8_t` and `std::u8string(_view)` in user-facing code to
support `u8""` string literals in C++20 and newer.
2. Remove `std::aligned_storage` from `xlnt::optional` due to C++23
deprecation warnings.
3. Add experimental support for C++26 - no further changes were
necessary (not yet, at least). I think we can use this to test new C++
compiler versions, but I would not guarantee C++26 support until it is
officially released.
4. Set CI to use C++23. I think it's better to not use C++26 yet to
avoid issues when new compiler versions are released.
5. Fix Unicode file paths on Windows when checking for existence of
files and folders, and when reading a file into a string.


Note: instead of using `const std::u8string &` like we do with
`std::string` in our current code, I chose to use `std::u8string_view`
to avoid unnecessarily copying strings, as we currently do in many cases
(which we cannot properly avoid except when using C strings (bad idea
IMO) or by switching to C++17 as a minimum). We should also switch from
`const std::string &` to `std::string_view` when switching to C++17 as a
minimum in the future. But, for now, I simply assumed support for
`std::string_view` (C++17) when using C++20 features, which is something
that should hopefully always work.

108 of 150 new or added lines in 8 files covered. (72.0%)

4 existing lines in 2 files now uncovered.

11488 of 14032 relevant lines covered (81.87%)

1191666.72 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
72.28
0.12% source/detail/cryptography/xlsx_crypto_producer.cpp
3
82.86
-1.23% source/utils/path.cpp
4
50.0
-50.0% source/detail/serialization/open_stream.cpp
6
68.52
14.35% source/detail/unicode.cpp
27
75.79
-0.56% source/workbook/workbook.cpp

Uncovered Existing Lines

Lines Coverage ∆ File
2
50.0
-50.0% source/detail/serialization/open_stream.cpp
2
75.79
-0.56% source/workbook/workbook.cpp
Jobs
ID Job ID Ran Files Coverage
1 67853142-21b5-4e24-946e-3f0c93e251de.1 05 Feb 2025 10:09AM UTC 112
81.87
Source Files on build 67853142-21b5-4e24-946e-3f0c93e251de
  • Tree
  • List 112
  • Changed 69
  • Source Changed 11
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • CircleCI Build #67853142...
  • e5f5624d on github
  • Prev Build on master (#AA719A12...)
  • Next Build on master (#796B5D63...)
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