Skip to content

migrate to c++23#6

Merged
leissa merged 22 commits into
mainfrom
cpp23
May 9, 2026
Merged

migrate to c++23#6
leissa merged 22 commits into
mainfrom
cpp23

Conversation

@leissa

@leissa leissa commented May 8, 2026

Copy link
Copy Markdown
Owner
  • updated badges
  • enhanced fe/format.h

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the fe header-only library baseline to C++23 and expands include/fe/format.h with additional formatting helpers intended to improve ergonomics when using std::format and streaming.

Changes:

  • Bump the library’s CMake compile features from C++20 to C++23.
  • Update documentation badges/text to reflect the C++23 baseline.
  • Enhance fe/format.h with new formatted-output helpers (Tab::print*), an fe::StreamFn wrapper, and an fe::join range adapter with std::formatter support.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
include/fe/format.h Adds new formatting utilities (StreamFn, Join/join, Tab::print*), and updates ostream formatter implementation.
docs/README.md Updates badges and README wording to C++23.
CMakeLists.txt Switches the fe interface target to require cxx_std_23.

Comment thread include/fe/format.h
Comment thread include/fe/format.h Outdated
Comment thread include/fe/format.h Outdated
Comment thread include/fe/format.h
@leissa leissa requested a review from Copilot May 9, 2026 21:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread include/fe/format.h
Comment on lines +167 to +168
out = std::ranges::copy(sep, out).out;
out = elem_fmt.format(elem, ctx);
Comment thread include/fe/format.h Outdated
};

/// Join elements of @p range with @p sep.
/// Use as a `std::format` or `operator<<` argument: `std::format("{}", fe::join(v, ", "))`.
Comment thread include/fe/format.h Outdated
Comment on lines +190 to +195
# define assertf(condition, ...) \
do { \
if (!(condition)) { \
std::println(std::cerr, "{}:{}: assertion: ", __FILE__, __LINE__); \
std::println(std::cerr, __VA_ARGS__); \
fe::breakpoint(); \
@leissa

leissa commented May 9, 2026

Copy link
Copy Markdown
Owner Author

@copilot apply changes based on the comments in this thread

Copilot AI and others added 2 commits May 9, 2026 21:50
Agent-Logs-Url: https://github.com/leissa/fe/sessions/e4abd5b4-0cc5-4f01-8ef0-4b1a7f979156

Co-authored-by: leissa <8067180+leissa@users.noreply.github.com>
Agent-Logs-Url: https://github.com/leissa/fe/sessions/e4abd5b4-0cc5-4f01-8ef0-4b1a7f979156

Co-authored-by: leissa <8067180+leissa@users.noreply.github.com>

Copilot AI commented May 9, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Done in 96d0cd6 (plus e29ba0d): I applied the requested thread fixes in include/fe/format.h (formatter context sync in Join formatting, docs example updated to fe::Join(...), and self-contained assertf output via <iostream> + std::format). Build/tests are passing.

Copilot finished work on behalf of leissa May 9, 2026 21:55
@leissa leissa merged commit f5943a8 into main May 9, 2026
14 checks passed
@leissa leissa deleted the cpp23 branch May 9, 2026 23:02
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.

3 participants