arg_router  1.4.0
C++ command line argument parsing and routing
tree_node_fwd.hpp
1 // Copyright (C) 2022-2023 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/utility/dynamic_string_view.hpp"
8 
9 #include <utility>
10 
11 namespace arg_router
12 {
23 };
24 
25 template <typename... Params>
26 class tree_node;
27 
32 template <typename T>
33 struct is_tree_node {
34 private:
35  template <typename... Ts>
36  constexpr static std::true_type test(const tree_node<Ts...>*);
37 
38  constexpr static std::false_type test(...);
39 
40 public:
41  // NOLINTNEXTLINE(hicpp-vararg)
42  constexpr static bool value = decltype(test(std::declval<T*>()))::value;
43 };
44 
49 template <typename T>
51 } // namespace arg_router
std::vector< T, config::allocator< T > > vector
Definition: basic_types.hpp:39
constexpr bool is_tree_node_v
utility::dynamic_string_view label
Node name.
utility::dynamic_string_view description
Node description.
vector< runtime_help_data > children
Child node help data.