summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2018-08-30 21:12:38 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2018-08-30 21:12:38 +0100
commit1ae4dcd724d5267f754f3bd65bdcdcf26288ea39 (patch)
treed879352165df287a31a8594bbc6cc2c5ef3f25ab
parentSimplify CTF bad format handling (diff)
downloadlibadhocutil-1ae4dcd724d5267f754f3bd65bdcdcf26288ea39.tar.bz2
libadhocutil-1ae4dcd724d5267f754f3bd65bdcdcf26288ea39.tar.xz
libadhocutil-1ae4dcd724d5267f754f3bd65bdcdcf26288ea39.zip
Add in a template type arg for enable_if
-rw-r--r--libadhocutil/compileTimeFormatter.h8
-rw-r--r--libadhocutil/detail/compileTimeFormatters.h4
2 files changed, 6 insertions, 6 deletions
diff --git a/libadhocutil/compileTimeFormatter.h b/libadhocutil/compileTimeFormatter.h
index 1e2a99c..8d60800 100644
--- a/libadhocutil/compileTimeFormatter.h
+++ b/libadhocutil/compileTimeFormatter.h
@@ -36,7 +36,7 @@ namespace AdHoc {
template <const auto & S, decltype(strlen<S>())> class Formatter;
- template<const auto & S, auto L, auto pos, typename stream, auto ...>
+ template<const auto & S, auto L, auto pos, typename stream, typename, auto ...>
struct StreamWriter {
template<typename ... Pn>
static void write(stream &, const Pn & ...)
@@ -56,12 +56,12 @@ namespace AdHoc {
#define StreamWriterT(C...) \
template<const auto & S, auto L, auto pos, typename stream, auto ... sn> \
- struct StreamWriter<S, L, pos, stream, '%', C, sn...> : \
+ struct StreamWriter<S, L, pos, stream, void, '%', C, sn...> : \
public StreamWriterBase<S, L, BOOST_PP_VARIADIC_SIZE(C) + pos, stream>
#define StreamWriterTP(P, C...) \
template<const auto & S, auto L, auto pos, typename stream, auto P, auto ... sn> \
- struct StreamWriter<S, L, pos, stream, '%', C, sn...> : \
+ struct StreamWriter<S, L, pos, stream, void, '%', C, sn...> : \
public StreamWriterBase<S, L, BOOST_PP_VARIADIC_SIZE(C) + pos, stream>
// Default stream writer formatter
@@ -153,7 +153,7 @@ namespace AdHoc {
static inline void packAndWrite(stream & s, const Pn & ... pn)
{
if constexpr (ph + off == L || sizeof...(Pck) == 32) {
- StreamWriter<S, L, ph, stream, Pck...>::write(s, pn...);
+ StreamWriter<S, L, ph, stream, void, Pck...>::write(s, pn...);
}
else if constexpr (ph + off < L) {
packAndWrite<ph, off + 1, Pck..., S[ph + off]>(s, pn...);
diff --git a/libadhocutil/detail/compileTimeFormatters.h b/libadhocutil/detail/compileTimeFormatters.h
index 3b12ea9..8579f92 100644
--- a/libadhocutil/detail/compileTimeFormatters.h
+++ b/libadhocutil/detail/compileTimeFormatters.h
@@ -97,7 +97,7 @@ namespace AdHoc {
static inline void write(stream & s, int l, const Pn & ... pn)
{
s << std::setw(l) << std::setprecision(l);
- StreamWriter<S, L, pos + 2, stream, '%', sn...>::write(s, pn...);
+ StreamWriter<S, L, pos + 2, stream, void, '%', sn...>::write(s, pn...);
}
};
StreamWriterT('.', '*', 's') {
@@ -114,7 +114,7 @@ namespace AdHoc {
StreamWriterT(__VA_ARGS__) { \
template<typename ... Pn> static inline void write(stream & s, const Pn & ... pn) { \
OP; \
- StreamWriter<S, L, pos + 1, stream, '%', sn...>::write(s, pn...); \
+ StreamWriter<S, L, pos + 1, stream, void, '%', sn...>::write(s, pn...); \
} \
};
FLAGCONV(s << std::showbase, '#');