BioCMAMC-ST
cli_parser.hpp
1#ifndef __CLI_PARSER_HPP__
2#define __CLI_PARSER_HPP__
3
4#include <common/results.hpp>
5#include <core/simulation_parameters.hpp>
6#include <iostream>
7#include <utility>
8
9//TODO WIP
10template <typename S>
11struct CliResults : Result<S, std::string> {
12 explicit CliResults(std::string_view t) noexcept : Result<S, std::string>(std::string(t)) {}
13
14 explicit CliResults(S&& value) noexcept : Result<S, std::string>(std::move(value)) {}
15
16 explicit constexpr CliResults() noexcept = default;
17
18 explicit operator CliResults<S>() && {
19 return CliResults<S>(std::move(*this));
20 }
21
22 explicit operator CliResults<S>() const& {
23 return CliResults<S>(this->get());
24 }
25};
26
27
44CliResults<Core::UserControlParameters> parse_cli(int argc, char** argv) noexcept;
45
49void showHelp(std::ostream& os) noexcept;
50
51#endif //__CLI_PARSER_HPP__
Definition cli_parser.hpp:11
CliResults(std::string_view t) noexcept
Definition cli_parser.hpp:12
constexpr CliResults() noexcept=default
CliResults(S &&value) noexcept
Definition cli_parser.hpp:14
Definition results.hpp:12
constexpr auto get() const noexcept -> std::string
Definition results.hpp:36