1515 * along with this program. If not, see <https://www.gnu.org/licenses/>.
1616 */
1717
18+ #include < vector>
19+
1820#include " scl/argparser.h"
1921
20- # include < vector >
22+ using namespace scl ;
2123
2224template <>
23- bool scl:: ProgramOptions::get<bool >(std::string_view name) const {
25+ bool ProgramOptions::get<bool >(std::string_view name) const {
2426 const auto v = m_args.at (name);
2527 return v == " 1" || v == " true" ;
2628}
2729
2830template <>
29- int scl:: ProgramOptions::get<int >(std::string_view name) const {
31+ int ProgramOptions::get<int >(std::string_view name) const {
3032 return std::stoi (m_args.at (name).data ());
3133}
3234
3335template <>
34- std::size_t scl:: ProgramOptions::get<std::size_t >(std::string_view name) const {
36+ std::size_t ProgramOptions::get<std::size_t >(std::string_view name) const {
3537 return std::stoul (m_args.at (name).data ());
3638}
3739
38- bool scl:: ProgramOptions::Parser::isArg (std::string_view name) const {
40+ bool ProgramOptions::Parser::isArg (std::string_view name) const {
3941 return std::any_of (m_args.begin (), m_args.end (), [&](auto a) {
4042 return a.name == name;
4143 });
4244}
4345
44- bool scl:: ProgramOptions::Parser::isFlag (std::string_view name) const {
46+ bool ProgramOptions::Parser::isFlag (std::string_view name) const {
4547 return std::any_of (m_flags.begin (), m_flags.end (), [&](auto f) {
4648 return f.name == name;
4749 });
@@ -73,9 +75,9 @@ bool hasDuplicates(const std::vector<ARG_OR_FLAG>& opts) {
7375
7476} // namespace
7577
76- using ParseRet = std::variant<scl:: ProgramOptions, std::string_view>;
78+ using ParseRet = std::variant<ProgramOptions, std::string_view>;
7779
78- ParseRet scl:: ProgramOptions::Parser::parseArguments (int argc, char ** argv) {
80+ ParseRet ProgramOptions::Parser::parseArguments (int argc, char ** argv) {
7981 if (hasDuplicates (m_args)) {
8082 return " duplicate argument definition" ;
8183 }
@@ -135,9 +137,8 @@ ParseRet scl::ProgramOptions::Parser::parseArguments(int argc, char** argv) {
135137 return error_msg;
136138}
137139
138- void scl::ProgramOptions::Parser::argListShort (
139- std::ostream& stream,
140- std::string_view program_name) const {
140+ void ProgramOptions::Parser::argListShort (std::ostream& stream,
141+ std::string_view program_name) const {
141142 stream << " Usage: " << program_name << " " ;
142143 forEachRequired (m_args, [&stream](const auto arg) {
143144 stream << " -" << arg.name << " " << arg.type_hint << " " ;
@@ -155,7 +156,7 @@ std::string getPadding(std::size_t lead) {
155156 return std::string (psz, ' ' );
156157}
157158
158- void writeArg (std::ostream& stream, const scl:: ProgramArg& arg) {
159+ void writeArg (std::ostream& stream, const ProgramArg& arg) {
159160 stream << " -" << arg.name << " '" << arg.type_hint << " '" ;
160161 if (!arg.description .empty ()) {
161162 const auto pad_str = getPadding (arg.name .size () + arg.type_hint .size () + 5 );
@@ -167,7 +168,7 @@ void writeArg(std::ostream& stream, const scl::ProgramArg& arg) {
167168 stream << std::endl;
168169}
169170
170- void writeFlag (std::ostream& stream, const scl:: ProgramFlag& flag) {
171+ void writeFlag (std::ostream& stream, const ProgramFlag& flag) {
171172 stream << " -" << flag.name ;
172173 if (!flag.description .empty ()) {
173174 const auto pad_str = getPadding (flag.name .size () + 2 );
@@ -188,7 +189,7 @@ bool hasOptional(IT begin, IT end) {
188189
189190} // namespace
190191
191- void scl:: ProgramOptions::Parser::argListLong (std::ostream& stream) const {
192+ void ProgramOptions::Parser::argListLong (std::ostream& stream) const {
192193 if (!m_description.empty ()) {
193194 stream << std::endl << m_description << std::endl;
194195 }
@@ -218,7 +219,7 @@ void scl::ProgramOptions::Parser::argListLong(std::ostream& stream) const {
218219 }
219220}
220221
221- void scl:: ProgramOptions::Parser::printHelp (std::string_view error_msg) {
222+ void ProgramOptions::Parser::printHelp (std::string_view error_msg) {
222223 bool error = !error_msg.empty ();
223224
224225 if (error) {
0 commit comments