Skip to content

Apply updated common_system with C++20 Concepts #271

Description

@kcenon

Summary

The common_system library has been enhanced with C++20 Concepts support (see common_system#192). This issue tracks updating thread_system to use the improved common_system.

Background

The common_system enhancement (PR #194) introduces:

  1. Error Clarity: Concise concept violation messages replacing verbose SFINAE template errors
  2. Self-Documentation: Explicit type requirements without boilerplate
  3. Code Simplification: ~30% reduction in std::enable_if patterns
  4. Better IDE Support: Improved auto-completion and type hint accuracy

New Concept Categories

  • Result/Optional: Resultable, Unwrappable, Mappable
  • Executor: Invocable, VoidCallable, JobLike, ExecutorLike
  • Event Bus: EventType, EventHandler, EventFilter
  • Service Container: ServiceInterface, ServiceImplementation, ServiceFactory
  • Configuration: ConfigSection, Validatable

Tasks

  • Update common_system submodule/dependency to latest version
  • Review and update code to leverage new C++20 Concepts where applicable
  • Update CI/CD workflows if needed for C++20 compiler requirements (GCC 10+, Clang 10+, MSVC 2019 16.3+)
  • Ensure all tests pass with the updated dependency
  • Update documentation if necessary

Related

  • common_system#192 - Original C++20 Concepts enhancement issue
  • common_system#194 - Merged PR implementing the concepts

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions