arg_router  1.4.0
C++ command line argument parsing and routing
program_intro.hpp
1 // Copyright (C) 2022 by Camden Mannett.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
4 
5 #pragma once
6 
7 #include "arg_router/policy/policy.hpp"
8 
9 namespace arg_router::policy
10 {
24 template <typename S>
26 {
27 public:
29  using string_type = S;
30 
35  constexpr explicit program_intro_t([[maybe_unused]] S str = {}) noexcept {}
36 
41  [[nodiscard]] constexpr static std::string_view program_intro() noexcept { return S::get(); }
42 
43 private:
44  static_assert(utility::utf8::count(program_intro()) > 1,
45  "Program intro must be longer than one character");
46 };
47 
52 template <typename S>
53 constexpr auto program_intro = program_intro_t<S>{};
54 
55 template <typename S>
56 struct is_policy<program_intro_t<S>> : std::true_type {
57 };
58 } // namespace arg_router::policy
constexpr static std::string_view program_intro() noexcept
constexpr program_intro_t([[maybe_unused]] S str={}) noexcept
constexpr auto program_intro
constexpr std::size_t count(std::string_view str) noexcept
Definition: utf8.hpp:278