gui_starter_template
Catch
gui_starter_template | Catch | |
---|---|---|
19 | 57 | |
2,391 | 18,766 | |
- | 0.6% | |
3.4 | 8.9 | |
over 1 year ago | 13 days ago | |
CMake | C++ | |
The Unlicense | gtkbook License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gui_starter_template
-
I am finding it incredibly hard to write software in CPP. Where can I get a book for software development in CPP ?
Was checking that as well, can't find it indeed. I would recommend looking into the following: https://github.com/cpp-best-practices/gui_starter_template
-
Collecting the best C++ practices
gui_starter_template. This is a C++ Best Practices GitHub template for getting up and running with C++ quickly.
-
Not adopting newer C++ standards
Next to language versions, spend time setting up your build system (CMake?) with all bells and whistles. You want unit tests, clang-tidy, include-what-you-use, sanitizers, fuzzing, clang-format, package managers. Just take a look at https://github.com/cpp-best-practices/gui_starter_template
-
Good repos for beginners to browse that follow best modern C++ practices (including testing, static analysis etc...)
https://github.com/cpp-best-practices/gui_starter_template from Jason Turner (aka lefticus) is quite a popular one (2.1k stars in Github)
-
The pool of talented C++ developers is running dry
I actually just tried to play around with what seems to be a "modern c++" boilerplate project.
It uses CMake, conan for packaging, clang-tidy and cpp-check, and has templates for fuzz and unit testing[1].
I found it because qtcreator and kdevelop were weirdly clunky and created partly broken qt projects and I figured I wanted to add a package manager and qt to the mix.
The template looks really fancy, but it's so incredibly slow, to the point of being unusable.
It's a ramble yes. But the point is modern C++ tools seem to have added some niceties to the language, but they also brought more of the main C++ issues, i.e. slow compile times and nasty boilerplate in the build process. Yes, I realize CMake isn't modern and there are a bunch of new build tools.
[1] https://github.com/cpp-best-practices/gui_starter_template
-
clang-tidy: Which check flags you typically use?
Clang-tidy file of the C++ Project Template
- Ask HN: Who is using C++ as the main language for new project?
-
Package and project management in C++
For cmake i find this useful: https://cliutils.gitlab.io/modern-cmake/ https://github.com/cpp-best-practices/gui_starter_template
-
How would you create/maintain a new c++ project using modern tools/practices?
Jason Turner (known from cppcast) has following project: https://github.com/cpp-best-practices/cpp_starter_project
-
Recommendations for modern C++ project structures
this is a cpp_question, but anyway, I think this is exactly what you're looking for. Credits go to Jason Turner.
Catch
-
Unit Tests as Documentation
This is one area where a BDD style framework like catch2[0] really shines, IMO. The way tests are written in this style naturally lends itself to self-documenting each branch
[0]: https://github.com/catchorg/Catch2
-
Comparing C++ range libraries for filter+reverse case with non-trivial lambda
The code uses catch2 to test for correctness and performance. Catch2 is a unit testing framework for C++, but it also provides basic micro-benchmarking features. Unfortunately, it doesn't provide any way to visualise the results, so I created a script and submitted PR adding plotting capabilities to Catch.
- C++ Comparison Operator Craziness
-
How can I check the execution time of a program rendered in SFML?
https://github.com/catchorg/Catch2 (for unit testing, need to do timing yourself)
- Semi crise existentielle de développeur
-
`DestroyJavaVM()` failing on OpenJ9?
```c++ // https://github.com/catchorg/Catch2/tree/Catch1.x // https://github.com/philsquared/Catch/releases/download/v1.12.2/catch.hpp
-
How do you use the Catch testing library?
Include(FetchContent) FetchContent_Declare(Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.3.2 ) FetchContent_MakeAvailable(Catch2)
- Tracking the Fake GitHub Star Black Market
- The Little Things: Why you should always have benchmarks ready
-
Trying to add tests for my cmake for catch2 with ctest.
Another possible issue would be the include(Catch) in your root cmakelists.txt . To include Catch there it must be part of your module path. Otherwise you have to include the path to that catch2 cmake file. Here is that file in their repository - https://github.com/catchorg/Catch2/blob/devel/extras/Catch.cmake . I recon that CMake doesn't know about this file since you call find_package(Catch2 REQUIRED) later in your subdirectory
What are some alternatives?
ModernCppStarter - 🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Google Test - GoogleTest - Google Testing and Mocking Framework
honggfuzz - Security oriented software fuzzer. Supports evolutionary, feedback-driven fuzzing based on code coverage (SW and HW based)
doctest - The fastest feature-rich C++11/14/17/20/23 single-header testing framework
sanitizers - AddressSanitizer, ThreadSanitizer, MemorySanitizer
Boost.Test - The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)
windmap
CppUTest - CppUTest unit testing and mocking framework for C/C++
json - JSON for Modern C++
Google Mock
cmake-init - The missing CMake project initializer
CppUnit - C++ port of JUnit