summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2016-12-09 14:11:51 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2016-12-09 14:11:51 +0000
commit1dc8cd000779a07c21eb631472e6061780c84c8c (patch)
tree5d6af27fd75a7f0b9887e68bd15ef58f791fd6bf
parentSplit parser buffer from upto buffer (simpler) (diff)
downloadlibadhocutil-1dc8cd000779a07c21eb631472e6061780c84c8c.tar.bz2
libadhocutil-1dc8cd000779a07c21eb631472e6061780c84c8c.tar.xz
libadhocutil-1dc8cd000779a07c21eb631472e6061780c84c8c.zip
Simplify the upto buffer
-rw-r--r--libadhocutil/compileTimeFormatter.h34
1 files changed, 17 insertions, 17 deletions
diff --git a/libadhocutil/compileTimeFormatter.h b/libadhocutil/compileTimeFormatter.h
index 064c4e3..64581ea 100644
--- a/libadhocutil/compileTimeFormatter.h
+++ b/libadhocutil/compileTimeFormatter.h
@@ -5,12 +5,12 @@
namespace AdHoc {
constexpr int WRAP_AT = 120;
- template <bool, int, char...> struct Buffer { };
+ template <int, char...> struct Buffer { };
template <const char * const & S, char stop, int start, int offset, char ...>
struct Upto {
template<typename stream>
- static auto stuff(stream &, const Buffer<false, start> & f)
+ static auto stuff(stream &, const Buffer<start> & f)
{
return f;
}
@@ -18,54 +18,54 @@ namespace AdHoc {
template <const char * const & S, char stop, int start, int offset, char s0, char... sn>
struct Upto<S, stop, start, offset, s0, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
- return Upto<S, stop, start, offset + 1, sn...>::stuff(s, Buffer<false, len, sm..., s0>());
+ return Upto<S, stop, start, offset + 1, sn...>::stuff(s, Buffer<len, sm..., s0>());
}
};
template <const char * const & S, char stop, int start, int offset, char... sn>
struct Upto<S, stop, start, offset, stop, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
s.write(S + start, sizeof...(sm));
- return Buffer<false, sizeof...(sm), stop, sn...>();
+ return Buffer<sizeof...(sm), stop, sn...>();
}
};
template <const char * const & S, char stop, int start, int offset, char... sn>
struct Upto<S, stop, start, offset, 0, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
s.write(S + start, sizeof...(sm));
- return Buffer<false, sizeof...(sm), 0, sn...>();
+ return Buffer<sizeof...(sm), 0, sn...>();
}
};
template <const char * const & S, char stop, int start, char s0, char... sn>
struct Upto<S, stop, start, WRAP_AT, s0, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
s.write(S + start, sizeof...(sm));
- return Buffer<false, sizeof...(sm), s0, sn...>();
+ return Buffer<sizeof...(sm), s0, sn...>();
}
};
template <const char * const & S, char stop, int start, char... sn>
struct Upto<S, stop, start, WRAP_AT, stop, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
s.write(S + start, sizeof...(sm));
- return Buffer<false, sizeof...(sm), stop, sn...>();
+ return Buffer<sizeof...(sm), stop, sn...>();
}
};
template <const char * const & S, char stop, int start, char... sn>
struct Upto<S, stop, start, WRAP_AT, 0, sn...> {
template<typename stream, int len, char... sm>
- static auto stuff(stream & s, const Buffer<false, len, sm...> &)
+ static auto stuff(stream & s, const Buffer<len, sm...> &)
{
s.write(S + start, sizeof...(sm));
- return Buffer<false, sizeof...(sm), 0, sn...>();
+ return Buffer<sizeof...(sm), 0, sn...>();
}
};
@@ -74,10 +74,10 @@ namespace AdHoc {
template<typename ... Pn>
static void write(stream & s, const Pn & ... pn)
{
- next(s, Upto<S, '%', start, 0, sn...>::stuff(s, Buffer<false, 0>()), pn...);
+ next(s, Upto<S, '%', start, 0, sn...>::stuff(s, Buffer<0>()), pn...);
}
- template<typename ... Pn, int len, char... ssn, template <bool, int, char...> class Buffer>
- static void next(stream & s, const Buffer<false, len, ssn...>&, const Pn & ... pn)
+ template<typename ... Pn, int len, char... ssn, template <int, char...> class Buffer>
+ static void next(stream & s, const Buffer<len, ssn...>&, const Pn & ... pn)
{
StreamWriter<S, start + len, stream, ssn...>::write(s, pn...);
}