getarg: be robust to bool
Currently we cannot write:
static const auto map = getarg<bool>
{
"zpc version",
{
// name, compact.
{"auto", "regular"},
{"compact", true},
{"regular", false},
}
};
because in the first case the "regular"
is used to build a bool
(true, obviously), which is exactly not what it should be.
Instead of using pure boost::variant, we should wrap one with a ctor of our own that does the right thing (and saves the client side from this).
Once done, simplify zpc.hh
.