jarro2783/cxxopts
tolc
jarro2783/cxxopts | tolc | |
---|---|---|
15 | 9 | |
4,002 | 37 | |
- | - | |
6.8 | 0.0 | |
8 days ago | almost 2 years ago | |
C++ | CMake | |
MIT License | GNU General Public License v3.0 or later |
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.
jarro2783/cxxopts
-
Command line interface library
The most feature-rich C++ CLI library is CLI11. Other popular choices include Boost.ProgramOptions, argparse, cxxopts and others.
-
Recommended Argument Parsing Library?
I've used cxxopts and can't complain. It's available on both Conan and vcpkg.
- Confusion about libraries and project structure
-
Quick question about int main(int argc, char **argv)
For streamlined command line option parsing check out a library like cxxopts or similar. There are plenty out there.
-
How do you make a command line argument of this format: ./executableName "input = inputFileName; output = outputFileName"
Have a look at cxxopts which is similar to the python getopt functions, It's header only so easy to use (just dump the header in your project). There is also boost::program_options but this requires boost which is big.
-
CLI11 is making all the other options libraries look bad, does anyone have a comparison from experience?
I use CLI11 for more complex things, https://github.com/jarro2783/cxxopts for simpler interfaces, and boost.program_options if I have to and have boost anyways as dependency.
-
Is there a macro for the output directory on msvc?
Let the user pass the path/filename as an input argument to the program. Your main() function takes arguments from the console, so you could invoke your program as .\my_program --err_log "\path\to\my_errors.log". Of course this again only works if executed from the console - you can however create a desktop shortcut that invokes your program with this argument and you can also configure your IDE to pass this argument when running your program. To make parsing input arguments easier, use a library such as cxxopts
-
Command Line Argument That Can Take Multiple Parameters
You probably want the header only library cxxopts.
-
How to create my own command using cpp?
To make parsing command line options easier I can recommend the cxxopts library.
-
Dumb question: what data structure do you use to represent a collection of config values passed in via command line arguments/
I have previously used this: https://github.com/jarro2783/cxxopts
tolc
-
CLI11 is making all the other options libraries look bad, does anyone have a comparison from experience?
I love CLI11! It has been pretty easy all the way through. Used to use lyra before but since I wanted to have subgroups in Tolc I had to switch. Great job on CLI11 if the author is in the chat :)
- Show HN: A Bindings Compiler for C++
- C++ Show and Tell - July 2022
-
Finding the right order to define objects
I'm working on a project called Tolc that is generating bindings from C++ to other languages. When creating bindings to a class MyClass, it needs to be defined before any code using that class (for example a function that returns an instance of it). Therefore I needed to know in which order to define things. Honestly I just had so much fun solving this problem (using some C++20 and features) that I wrote a post so sum it all up:
-
A C++ Bindings Compiler
Hi everyone!
Some friends and I were unhappy with how much work it was to use C++ from other languages. We were working in the optimizations industry and often had to prototype with python. Eventually, we created a tool to make it easier for C++ to talk to python (by generating pybind11). Later, javascript via WebAssembly was added as well. It's now at a point where it's very easy to just create a C++ library and use it from any of those languages without change. We're planning on slowly adding more languages as needed/requested. The next on the list are Swift and Kotlin.
It does not require any change to your existing public interface, but simply reads it and creates the bindings off of that. It should also work on Linux (Debian), MacOS, and Windows (Visual Studio). Here's a small demo if you'd like to test:
https://github.com/Tolc-Software/tolc-demo
And here are the repositories with the source code:
https://github.com/Tolc-Software/tolc - The executable
https://github.com/Tolc-Software/frontend.py - The python bindings generator
https://github.com/Tolc-Software/frontend.wasm - The WebAssembly bindings generator
https://github.com/Tolc-Software/Parser - The C++ parser
It is dual licensed with AGPL and, if someone wants, a commercial license as well.
Would be cool if someone finds it useful!
- An easier way to use C++ from other languages
-
A bindings compiler for C++
https://github.com/Tolc-Software/tolc - The executable and CMake wrappers
-
I cried at that moment.
I’m just gonna drop this here: https://github.com/Tolc-Software/tolc
What are some alternatives?
CLI11 - CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
PhotonLibOS - Probably the fastest coroutine lib in the world!
Boost.Program_options - Boost.org program_options module
AnyAny - C++17 library for comfortable and efficient dynamic polymorphism
gflags - The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at:
kelcoro - C++20 coroutine library
clipp - easy to use, powerful & expressive command line argument parsing for modern C++ / single header / usage & doc generation
diskwrite - An alternative to the Linux `dd`, written in C.
args - A simple header-only C++ argument parser library. Supposed to be flexible and powerful, and attempts to be compatible with the functionality of the Python standard argparse library (though not necessarily the API).
Reduct Storage - A time series database for storing and managing large amounts of blob data [Moved to: https://github.com/reductstore/reductstore]
conan - Conan - The open-source C and C++ package manager
SAFD-algorithm - An app to compute the coefficients of a function development in a spherical harmonics convergent series.