cmdopt: add bool value option specialisation
This commit is contained in:
parent
8038e40f62
commit
88be946454
42
cmdopt.cpp
42
cmdopt.cpp
@ -162,6 +162,48 @@ present::finish (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
namespace util { namespace cmdopt { namespace option {
|
||||||
|
template <>
|
||||||
|
void
|
||||||
|
value<bool>::execute (const char *restrict str)
|
||||||
|
{
|
||||||
|
static const std::string TRUE_STRING[] = {
|
||||||
|
"true",
|
||||||
|
"yes",
|
||||||
|
"y",
|
||||||
|
"1"
|
||||||
|
};
|
||||||
|
|
||||||
|
if (std::any_of (std::begin (TRUE_STRING),
|
||||||
|
std::end (TRUE_STRING),
|
||||||
|
[str] (auto i) { return i == str; }))
|
||||||
|
{
|
||||||
|
m_data = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const std::string FALSE_STRING[] = {
|
||||||
|
"false",
|
||||||
|
"no",
|
||||||
|
"n",
|
||||||
|
"0"
|
||||||
|
};
|
||||||
|
|
||||||
|
if (std::any_of (std::begin (FALSE_STRING),
|
||||||
|
std::end (FALSE_STRING),
|
||||||
|
[str] (auto i) { return i == str; }))
|
||||||
|
{
|
||||||
|
m_data = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base::execute (str);
|
||||||
|
seen (true);
|
||||||
|
}
|
||||||
|
} } }
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
namespace util { namespace cmdopt { namespace option {
|
namespace util { namespace cmdopt { namespace option {
|
||||||
template class value<uint16_t>;
|
template class value<uint16_t>;
|
||||||
|
Loading…
Reference in New Issue
Block a user