https://github.com/huangsam/cpp-trial
Exploring tools like CMake and GoogleTest
https://github.com/huangsam/cpp-trial
cmake cpp googletest learn-to-code ninja
Last synced: 3 months ago
JSON representation
Exploring tools like CMake and GoogleTest
- Host: GitHub
- URL: https://github.com/huangsam/cpp-trial
- Owner: huangsam
- Created: 2024-02-11T23:56:13.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-06T16:14:24.000Z (3 months ago)
- Last Synced: 2026-04-06T17:24:05.694Z (3 months ago)
- Topics: cmake, cpp, googletest, learn-to-code, ninja
- Language: C++
- Homepage:
- Size: 359 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# C++ Trial
[](https://github.com/huangsam/cpp-trial/actions)
Exploring modern C++ concepts (C++11 to C++20) with [CMake](https://cmake.org/) and [GoogleTest](https://google.github.io/googletest/) as development tools.

## Project goals
This repository serves as a comprehensive learning resource for modern C++ development, focusing on language mastery through C++11 to C++20 features, tool proficiency with CMake and GoogleTest, backend development patterns for systems programming, code quality with clean and testable C++ code, and progressive learning from basic concepts to advanced template metaprogramming.
## Project structure
The codebase is organized into domain-specific modules:
- `advanced/`: Metaprogramming, lambdas, and factorial templates.
- `concurrency/`: Threading, async programming, and synchronization structures.
- `memory/`: Smart pointers, move semantics, and custom memory management.
- `oop/`: Inheritance, polymorphism, and core class design.
- `stl/`: Standard Template Library containers, algorithms, and file I/O.
- `types/`: Primitive type safety, namespaces, and enums/unions.
For a guided learning path of C++ concepts in this project, refer to [LESSONS.md](LESSONS.md).
## Getting started
For everyone:
```shell
# Build with development mode
cmake --preset dev
cmake --build --preset dev
# Run application and tests
./build/bin/main.out
./build/bin/test.out
```
For performance engineers:
```shell
# Build with release mode
cmake --preset release
cmake --build --preset release
# Run benchmarks
./build/bin/bench/memory_bench.out
./build/bin/bench/concurrency_bench.out
./build/bin/bench/move_bench.out
```
For contributors:
```shell
# Ensure all files are formatted before PR
cmake --build build --target format
```
## Useful resources
-
-
-
-
-
-
-
-