Coreutils++
The GNU Coreutils implemented in C++
Loading...
Searching...
No Matches
ArgumentParser.hpp File Reference

public API for the coreutlspp-wide argument parser More...

#include <array>
#include <concepts>
#include <cstddef>
#include <cstdlib>
#include <print>
#include <span>
#include <string_view>
#include <tuple>
#include <type_traits>
#include "detail/ArgumentParser.hpp"

Go to the source code of this file.

Classes

struct  coreutils::ArgumentInfo< HelpText, Names >
struct  coreutils::ConversionInfo< ConvertedType, Converter >
struct  coreutils::ProgramInfo< Program, Version, Usage, Summary >
struct  coreutils::is_conversion_info< T, U >
struct  coreutils::is_conversion_info< U< V, C >, ConversionInfo >
struct  coreutils::is_instance_of< T, U >
struct  coreutils::is_instance_of< ProgramInfo< Info... >, ProgramInfo >
struct  coreutils::is_instance_of< ArgumentInfo< Info... >, ArgumentInfo >
struct  coreutils::Flag< Info_t, Converter_t >
struct  coreutils::Option< Info_t, Converter_t >
class  coreutils::ArgumentParser< Program, Args >

Namespaces

namespace  coreutils

Concepts

concept  coreutils::ValueConverter
concept  coreutils::EmptyConverter
concept  coreutils::NonVoid
concept  coreutils::ArgumentConverter
concept  coreutils::IsProgramInfo
concept  coreutils::IsArgumentInfo
concept  coreutils::IsFlagConverter
concept  coreutils::IsValueConverter
concept  coreutils::Arg

Typedefs

template<class T, auto Converter, detail::ComptimeString... Names>
using coreutils::MultiValueArgument
template<class T, auto Converter>
using coreutils::PositionalArguments
template<detail::ComptimeString... Names>
using coreutils::BooleanArgument
template<class T, auto Converter, detail::ComptimeString... Names>
using coreutils::SingleValueArgument

Variables

template<class T>
decltype(auto) coreutils::is_conversion_info_v

Detailed Description

public API for the coreutlspp-wide argument parser

Copyright (C) 2025 Sebastian Pineda (spine.nosp@m.da.w.nosp@m.pi.al.nosp@m.um@g.nosp@m.mail..nosp@m.com)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/