Do not use non-standard __uint128
diff --git a/make_escape_dct.py b/make_escape_dct.py
index b994e69..2c0669f 100755
--- a/make_escape_dct.py
+++ b/make_escape_dct.py
@@ -21,7 +21,9 @@
             s = '\\r'
         elif c == ord('\t'):
             s = '\\t'
-        elif (c < 0x20) or (c >= 0x7f) or (chr(c) in '''"'&<>\\'''):
+        elif c == ord('"'):
+            s = '\\"'
+        elif (c < 0x20) or (c >= 0x7f) or (chr(c) in "'&<>\\"):
             s = f'\\u{c:04x}'
         else:
             s = f'{c:c}'
@@ -32,14 +34,13 @@
             f"'{c}'" if c != '\\' else f"'\\\\'"
             for c in s
         ] + ['0'] * 6
-        print('    {' + ', '.join(t[:8]) + '},', file=f)
+        l = ', '.join(t[:8])
+        print(f'   {{ {l:35s} }},  /* 0x{c:02x} {chr(c)!r} */', file=f)
     print('};', file=f)
 
     escaped = unescaped ^ ((1 << 128) - 1)
-    print('const unsigned __int128 EscapeDct::is_escaped_array = (', file=f)
-    print(f'    ((unsigned __int128) 0x{(escaped >> 64):016x} << 64) |', file=f)
-    print(f'    ((unsigned __int128) 0x{(escaped & ((1 << 64) - 1)):016x})', file=f)
-    print(');', file=f)
+    print(f'const std::uint64_t EscapeDct::is_escaped_lo = UINT64_C(0x{(escaped & ((1 << 64) - 1)):016x});', file=f)
+    print(f'const std::uint64_t EscapeDct::is_escaped_hi = UINT64_C(0x{(escaped >> 64):016x});', file=f)
 
 
 argparser = ArgumentParser(description='Generate src/_escape_dct.hpp')
diff --git a/src/_escape_dct.hpp b/src/_escape_dct.hpp
index 9d5df94..4942e7d 100644
--- a/src/_escape_dct.hpp
+++ b/src/_escape_dct.hpp
@@ -1,262 +1,260 @@
 const EscapeDct::Items EscapeDct::items = {
-    {6, '\\', 'u', '0', '0', '0', '0', 0},
-    {6, '\\', 'u', '0', '0', '0', '1', 0},
-    {6, '\\', 'u', '0', '0', '0', '2', 0},
-    {6, '\\', 'u', '0', '0', '0', '3', 0},
-    {6, '\\', 'u', '0', '0', '0', '4', 0},
-    {6, '\\', 'u', '0', '0', '0', '5', 0},
-    {6, '\\', 'u', '0', '0', '0', '6', 0},
-    {6, '\\', 'u', '0', '0', '0', '7', 0},
-    {2, '\\', 'b', 0, 0, 0, 0, 0},
-    {2, '\\', 't', 0, 0, 0, 0, 0},
-    {2, '\\', 'n', 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '0', 'b', 0},
-    {2, '\\', 'f', 0, 0, 0, 0, 0},
-    {2, '\\', 'r', 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '0', 'e', 0},
-    {6, '\\', 'u', '0', '0', '0', 'f', 0},
-    {6, '\\', 'u', '0', '0', '1', '0', 0},
-    {6, '\\', 'u', '0', '0', '1', '1', 0},
-    {6, '\\', 'u', '0', '0', '1', '2', 0},
-    {6, '\\', 'u', '0', '0', '1', '3', 0},
-    {6, '\\', 'u', '0', '0', '1', '4', 0},
-    {6, '\\', 'u', '0', '0', '1', '5', 0},
-    {6, '\\', 'u', '0', '0', '1', '6', 0},
-    {6, '\\', 'u', '0', '0', '1', '7', 0},
-    {6, '\\', 'u', '0', '0', '1', '8', 0},
-    {6, '\\', 'u', '0', '0', '1', '9', 0},
-    {6, '\\', 'u', '0', '0', '1', 'a', 0},
-    {6, '\\', 'u', '0', '0', '1', 'b', 0},
-    {6, '\\', 'u', '0', '0', '1', 'c', 0},
-    {6, '\\', 'u', '0', '0', '1', 'd', 0},
-    {6, '\\', 'u', '0', '0', '1', 'e', 0},
-    {6, '\\', 'u', '0', '0', '1', 'f', 0},
-    {1, ' ', 0, 0, 0, 0, 0, 0},
-    {1, '!', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '2', '2', 0},
-    {1, '#', 0, 0, 0, 0, 0, 0},
-    {1, '$', 0, 0, 0, 0, 0, 0},
-    {1, '%', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '2', '6', 0},
-    {6, '\\', 'u', '0', '0', '2', '7', 0},
-    {1, '(', 0, 0, 0, 0, 0, 0},
-    {1, ')', 0, 0, 0, 0, 0, 0},
-    {1, '*', 0, 0, 0, 0, 0, 0},
-    {1, '+', 0, 0, 0, 0, 0, 0},
-    {1, ',', 0, 0, 0, 0, 0, 0},
-    {1, '-', 0, 0, 0, 0, 0, 0},
-    {1, '.', 0, 0, 0, 0, 0, 0},
-    {1, '/', 0, 0, 0, 0, 0, 0},
-    {1, '0', 0, 0, 0, 0, 0, 0},
-    {1, '1', 0, 0, 0, 0, 0, 0},
-    {1, '2', 0, 0, 0, 0, 0, 0},
-    {1, '3', 0, 0, 0, 0, 0, 0},
-    {1, '4', 0, 0, 0, 0, 0, 0},
-    {1, '5', 0, 0, 0, 0, 0, 0},
-    {1, '6', 0, 0, 0, 0, 0, 0},
-    {1, '7', 0, 0, 0, 0, 0, 0},
-    {1, '8', 0, 0, 0, 0, 0, 0},
-    {1, '9', 0, 0, 0, 0, 0, 0},
-    {1, ':', 0, 0, 0, 0, 0, 0},
-    {1, ';', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '3', 'c', 0},
-    {1, '=', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '3', 'e', 0},
-    {1, '?', 0, 0, 0, 0, 0, 0},
-    {1, '@', 0, 0, 0, 0, 0, 0},
-    {1, 'A', 0, 0, 0, 0, 0, 0},
-    {1, 'B', 0, 0, 0, 0, 0, 0},
-    {1, 'C', 0, 0, 0, 0, 0, 0},
-    {1, 'D', 0, 0, 0, 0, 0, 0},
-    {1, 'E', 0, 0, 0, 0, 0, 0},
-    {1, 'F', 0, 0, 0, 0, 0, 0},
-    {1, 'G', 0, 0, 0, 0, 0, 0},
-    {1, 'H', 0, 0, 0, 0, 0, 0},
-    {1, 'I', 0, 0, 0, 0, 0, 0},
-    {1, 'J', 0, 0, 0, 0, 0, 0},
-    {1, 'K', 0, 0, 0, 0, 0, 0},
-    {1, 'L', 0, 0, 0, 0, 0, 0},
-    {1, 'M', 0, 0, 0, 0, 0, 0},
-    {1, 'N', 0, 0, 0, 0, 0, 0},
-    {1, 'O', 0, 0, 0, 0, 0, 0},
-    {1, 'P', 0, 0, 0, 0, 0, 0},
-    {1, 'Q', 0, 0, 0, 0, 0, 0},
-    {1, 'R', 0, 0, 0, 0, 0, 0},
-    {1, 'S', 0, 0, 0, 0, 0, 0},
-    {1, 'T', 0, 0, 0, 0, 0, 0},
-    {1, 'U', 0, 0, 0, 0, 0, 0},
-    {1, 'V', 0, 0, 0, 0, 0, 0},
-    {1, 'W', 0, 0, 0, 0, 0, 0},
-    {1, 'X', 0, 0, 0, 0, 0, 0},
-    {1, 'Y', 0, 0, 0, 0, 0, 0},
-    {1, 'Z', 0, 0, 0, 0, 0, 0},
-    {1, '[', 0, 0, 0, 0, 0, 0},
-    {2, '\\', '\\', 0, 0, 0, 0, 0},
-    {1, ']', 0, 0, 0, 0, 0, 0},
-    {1, '^', 0, 0, 0, 0, 0, 0},
-    {1, '_', 0, 0, 0, 0, 0, 0},
-    {1, '`', 0, 0, 0, 0, 0, 0},
-    {1, 'a', 0, 0, 0, 0, 0, 0},
-    {1, 'b', 0, 0, 0, 0, 0, 0},
-    {1, 'c', 0, 0, 0, 0, 0, 0},
-    {1, 'd', 0, 0, 0, 0, 0, 0},
-    {1, 'e', 0, 0, 0, 0, 0, 0},
-    {1, 'f', 0, 0, 0, 0, 0, 0},
-    {1, 'g', 0, 0, 0, 0, 0, 0},
-    {1, 'h', 0, 0, 0, 0, 0, 0},
-    {1, 'i', 0, 0, 0, 0, 0, 0},
-    {1, 'j', 0, 0, 0, 0, 0, 0},
-    {1, 'k', 0, 0, 0, 0, 0, 0},
-    {1, 'l', 0, 0, 0, 0, 0, 0},
-    {1, 'm', 0, 0, 0, 0, 0, 0},
-    {1, 'n', 0, 0, 0, 0, 0, 0},
-    {1, 'o', 0, 0, 0, 0, 0, 0},
-    {1, 'p', 0, 0, 0, 0, 0, 0},
-    {1, 'q', 0, 0, 0, 0, 0, 0},
-    {1, 'r', 0, 0, 0, 0, 0, 0},
-    {1, 's', 0, 0, 0, 0, 0, 0},
-    {1, 't', 0, 0, 0, 0, 0, 0},
-    {1, 'u', 0, 0, 0, 0, 0, 0},
-    {1, 'v', 0, 0, 0, 0, 0, 0},
-    {1, 'w', 0, 0, 0, 0, 0, 0},
-    {1, 'x', 0, 0, 0, 0, 0, 0},
-    {1, 'y', 0, 0, 0, 0, 0, 0},
-    {1, 'z', 0, 0, 0, 0, 0, 0},
-    {1, '{', 0, 0, 0, 0, 0, 0},
-    {1, '|', 0, 0, 0, 0, 0, 0},
-    {1, '}', 0, 0, 0, 0, 0, 0},
-    {1, '~', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '7', 'f', 0},
-    {6, '\\', 'u', '0', '0', '8', '0', 0},
-    {6, '\\', 'u', '0', '0', '8', '1', 0},
-    {6, '\\', 'u', '0', '0', '8', '2', 0},
-    {6, '\\', 'u', '0', '0', '8', '3', 0},
-    {6, '\\', 'u', '0', '0', '8', '4', 0},
-    {6, '\\', 'u', '0', '0', '8', '5', 0},
-    {6, '\\', 'u', '0', '0', '8', '6', 0},
-    {6, '\\', 'u', '0', '0', '8', '7', 0},
-    {6, '\\', 'u', '0', '0', '8', '8', 0},
-    {6, '\\', 'u', '0', '0', '8', '9', 0},
-    {6, '\\', 'u', '0', '0', '8', 'a', 0},
-    {6, '\\', 'u', '0', '0', '8', 'b', 0},
-    {6, '\\', 'u', '0', '0', '8', 'c', 0},
-    {6, '\\', 'u', '0', '0', '8', 'd', 0},
-    {6, '\\', 'u', '0', '0', '8', 'e', 0},
-    {6, '\\', 'u', '0', '0', '8', 'f', 0},
-    {6, '\\', 'u', '0', '0', '9', '0', 0},
-    {6, '\\', 'u', '0', '0', '9', '1', 0},
-    {6, '\\', 'u', '0', '0', '9', '2', 0},
-    {6, '\\', 'u', '0', '0', '9', '3', 0},
-    {6, '\\', 'u', '0', '0', '9', '4', 0},
-    {6, '\\', 'u', '0', '0', '9', '5', 0},
-    {6, '\\', 'u', '0', '0', '9', '6', 0},
-    {6, '\\', 'u', '0', '0', '9', '7', 0},
-    {6, '\\', 'u', '0', '0', '9', '8', 0},
-    {6, '\\', 'u', '0', '0', '9', '9', 0},
-    {6, '\\', 'u', '0', '0', '9', 'a', 0},
-    {6, '\\', 'u', '0', '0', '9', 'b', 0},
-    {6, '\\', 'u', '0', '0', '9', 'c', 0},
-    {6, '\\', 'u', '0', '0', '9', 'd', 0},
-    {6, '\\', 'u', '0', '0', '9', 'e', 0},
-    {6, '\\', 'u', '0', '0', '9', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'a', '0', 0},
-    {6, '\\', 'u', '0', '0', 'a', '1', 0},
-    {6, '\\', 'u', '0', '0', 'a', '2', 0},
-    {6, '\\', 'u', '0', '0', 'a', '3', 0},
-    {6, '\\', 'u', '0', '0', 'a', '4', 0},
-    {6, '\\', 'u', '0', '0', 'a', '5', 0},
-    {6, '\\', 'u', '0', '0', 'a', '6', 0},
-    {6, '\\', 'u', '0', '0', 'a', '7', 0},
-    {6, '\\', 'u', '0', '0', 'a', '8', 0},
-    {6, '\\', 'u', '0', '0', 'a', '9', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'b', '0', 0},
-    {6, '\\', 'u', '0', '0', 'b', '1', 0},
-    {6, '\\', 'u', '0', '0', 'b', '2', 0},
-    {6, '\\', 'u', '0', '0', 'b', '3', 0},
-    {6, '\\', 'u', '0', '0', 'b', '4', 0},
-    {6, '\\', 'u', '0', '0', 'b', '5', 0},
-    {6, '\\', 'u', '0', '0', 'b', '6', 0},
-    {6, '\\', 'u', '0', '0', 'b', '7', 0},
-    {6, '\\', 'u', '0', '0', 'b', '8', 0},
-    {6, '\\', 'u', '0', '0', 'b', '9', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'c', '0', 0},
-    {6, '\\', 'u', '0', '0', 'c', '1', 0},
-    {6, '\\', 'u', '0', '0', 'c', '2', 0},
-    {6, '\\', 'u', '0', '0', 'c', '3', 0},
-    {6, '\\', 'u', '0', '0', 'c', '4', 0},
-    {6, '\\', 'u', '0', '0', 'c', '5', 0},
-    {6, '\\', 'u', '0', '0', 'c', '6', 0},
-    {6, '\\', 'u', '0', '0', 'c', '7', 0},
-    {6, '\\', 'u', '0', '0', 'c', '8', 0},
-    {6, '\\', 'u', '0', '0', 'c', '9', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'd', '0', 0},
-    {6, '\\', 'u', '0', '0', 'd', '1', 0},
-    {6, '\\', 'u', '0', '0', 'd', '2', 0},
-    {6, '\\', 'u', '0', '0', 'd', '3', 0},
-    {6, '\\', 'u', '0', '0', 'd', '4', 0},
-    {6, '\\', 'u', '0', '0', 'd', '5', 0},
-    {6, '\\', 'u', '0', '0', 'd', '6', 0},
-    {6, '\\', 'u', '0', '0', 'd', '7', 0},
-    {6, '\\', 'u', '0', '0', 'd', '8', 0},
-    {6, '\\', 'u', '0', '0', 'd', '9', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'e', '0', 0},
-    {6, '\\', 'u', '0', '0', 'e', '1', 0},
-    {6, '\\', 'u', '0', '0', 'e', '2', 0},
-    {6, '\\', 'u', '0', '0', 'e', '3', 0},
-    {6, '\\', 'u', '0', '0', 'e', '4', 0},
-    {6, '\\', 'u', '0', '0', 'e', '5', 0},
-    {6, '\\', 'u', '0', '0', 'e', '6', 0},
-    {6, '\\', 'u', '0', '0', 'e', '7', 0},
-    {6, '\\', 'u', '0', '0', 'e', '8', 0},
-    {6, '\\', 'u', '0', '0', 'e', '9', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'f', '0', 0},
-    {6, '\\', 'u', '0', '0', 'f', '1', 0},
-    {6, '\\', 'u', '0', '0', 'f', '2', 0},
-    {6, '\\', 'u', '0', '0', 'f', '3', 0},
-    {6, '\\', 'u', '0', '0', 'f', '4', 0},
-    {6, '\\', 'u', '0', '0', 'f', '5', 0},
-    {6, '\\', 'u', '0', '0', 'f', '6', 0},
-    {6, '\\', 'u', '0', '0', 'f', '7', 0},
-    {6, '\\', 'u', '0', '0', 'f', '8', 0},
-    {6, '\\', 'u', '0', '0', 'f', '9', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'f', 0},
+   { 6, '\\', 'u', '0', '0', '0', '0', 0 },  /* 0x00 '\x00' */
+   { 6, '\\', 'u', '0', '0', '0', '1', 0 },  /* 0x01 '\x01' */
+   { 6, '\\', 'u', '0', '0', '0', '2', 0 },  /* 0x02 '\x02' */
+   { 6, '\\', 'u', '0', '0', '0', '3', 0 },  /* 0x03 '\x03' */
+   { 6, '\\', 'u', '0', '0', '0', '4', 0 },  /* 0x04 '\x04' */
+   { 6, '\\', 'u', '0', '0', '0', '5', 0 },  /* 0x05 '\x05' */
+   { 6, '\\', 'u', '0', '0', '0', '6', 0 },  /* 0x06 '\x06' */
+   { 6, '\\', 'u', '0', '0', '0', '7', 0 },  /* 0x07 '\x07' */
+   { 2, '\\', 'b', 0, 0, 0, 0, 0         },  /* 0x08 '\x08' */
+   { 2, '\\', 't', 0, 0, 0, 0, 0         },  /* 0x09 '\t' */
+   { 2, '\\', 'n', 0, 0, 0, 0, 0         },  /* 0x0a '\n' */
+   { 6, '\\', 'u', '0', '0', '0', 'b', 0 },  /* 0x0b '\x0b' */
+   { 2, '\\', 'f', 0, 0, 0, 0, 0         },  /* 0x0c '\x0c' */
+   { 2, '\\', 'r', 0, 0, 0, 0, 0         },  /* 0x0d '\r' */
+   { 6, '\\', 'u', '0', '0', '0', 'e', 0 },  /* 0x0e '\x0e' */
+   { 6, '\\', 'u', '0', '0', '0', 'f', 0 },  /* 0x0f '\x0f' */
+   { 6, '\\', 'u', '0', '0', '1', '0', 0 },  /* 0x10 '\x10' */
+   { 6, '\\', 'u', '0', '0', '1', '1', 0 },  /* 0x11 '\x11' */
+   { 6, '\\', 'u', '0', '0', '1', '2', 0 },  /* 0x12 '\x12' */
+   { 6, '\\', 'u', '0', '0', '1', '3', 0 },  /* 0x13 '\x13' */
+   { 6, '\\', 'u', '0', '0', '1', '4', 0 },  /* 0x14 '\x14' */
+   { 6, '\\', 'u', '0', '0', '1', '5', 0 },  /* 0x15 '\x15' */
+   { 6, '\\', 'u', '0', '0', '1', '6', 0 },  /* 0x16 '\x16' */
+   { 6, '\\', 'u', '0', '0', '1', '7', 0 },  /* 0x17 '\x17' */
+   { 6, '\\', 'u', '0', '0', '1', '8', 0 },  /* 0x18 '\x18' */
+   { 6, '\\', 'u', '0', '0', '1', '9', 0 },  /* 0x19 '\x19' */
+   { 6, '\\', 'u', '0', '0', '1', 'a', 0 },  /* 0x1a '\x1a' */
+   { 6, '\\', 'u', '0', '0', '1', 'b', 0 },  /* 0x1b '\x1b' */
+   { 6, '\\', 'u', '0', '0', '1', 'c', 0 },  /* 0x1c '\x1c' */
+   { 6, '\\', 'u', '0', '0', '1', 'd', 0 },  /* 0x1d '\x1d' */
+   { 6, '\\', 'u', '0', '0', '1', 'e', 0 },  /* 0x1e '\x1e' */
+   { 6, '\\', 'u', '0', '0', '1', 'f', 0 },  /* 0x1f '\x1f' */
+   { 1, ' ', 0, 0, 0, 0, 0, 0            },  /* 0x20 ' ' */
+   { 1, '!', 0, 0, 0, 0, 0, 0            },  /* 0x21 '!' */
+   { 2, '\\', '"', 0, 0, 0, 0, 0         },  /* 0x22 '"' */
+   { 1, '#', 0, 0, 0, 0, 0, 0            },  /* 0x23 '#' */
+   { 1, '$', 0, 0, 0, 0, 0, 0            },  /* 0x24 '$' */
+   { 1, '%', 0, 0, 0, 0, 0, 0            },  /* 0x25 '%' */
+   { 6, '\\', 'u', '0', '0', '2', '6', 0 },  /* 0x26 '&' */
+   { 6, '\\', 'u', '0', '0', '2', '7', 0 },  /* 0x27 "'" */
+   { 1, '(', 0, 0, 0, 0, 0, 0            },  /* 0x28 '(' */
+   { 1, ')', 0, 0, 0, 0, 0, 0            },  /* 0x29 ')' */
+   { 1, '*', 0, 0, 0, 0, 0, 0            },  /* 0x2a '*' */
+   { 1, '+', 0, 0, 0, 0, 0, 0            },  /* 0x2b '+' */
+   { 1, ',', 0, 0, 0, 0, 0, 0            },  /* 0x2c ',' */
+   { 1, '-', 0, 0, 0, 0, 0, 0            },  /* 0x2d '-' */
+   { 1, '.', 0, 0, 0, 0, 0, 0            },  /* 0x2e '.' */
+   { 1, '/', 0, 0, 0, 0, 0, 0            },  /* 0x2f '/' */
+   { 1, '0', 0, 0, 0, 0, 0, 0            },  /* 0x30 '0' */
+   { 1, '1', 0, 0, 0, 0, 0, 0            },  /* 0x31 '1' */
+   { 1, '2', 0, 0, 0, 0, 0, 0            },  /* 0x32 '2' */
+   { 1, '3', 0, 0, 0, 0, 0, 0            },  /* 0x33 '3' */
+   { 1, '4', 0, 0, 0, 0, 0, 0            },  /* 0x34 '4' */
+   { 1, '5', 0, 0, 0, 0, 0, 0            },  /* 0x35 '5' */
+   { 1, '6', 0, 0, 0, 0, 0, 0            },  /* 0x36 '6' */
+   { 1, '7', 0, 0, 0, 0, 0, 0            },  /* 0x37 '7' */
+   { 1, '8', 0, 0, 0, 0, 0, 0            },  /* 0x38 '8' */
+   { 1, '9', 0, 0, 0, 0, 0, 0            },  /* 0x39 '9' */
+   { 1, ':', 0, 0, 0, 0, 0, 0            },  /* 0x3a ':' */
+   { 1, ';', 0, 0, 0, 0, 0, 0            },  /* 0x3b ';' */
+   { 6, '\\', 'u', '0', '0', '3', 'c', 0 },  /* 0x3c '<' */
+   { 1, '=', 0, 0, 0, 0, 0, 0            },  /* 0x3d '=' */
+   { 6, '\\', 'u', '0', '0', '3', 'e', 0 },  /* 0x3e '>' */
+   { 1, '?', 0, 0, 0, 0, 0, 0            },  /* 0x3f '?' */
+   { 1, '@', 0, 0, 0, 0, 0, 0            },  /* 0x40 '@' */
+   { 1, 'A', 0, 0, 0, 0, 0, 0            },  /* 0x41 'A' */
+   { 1, 'B', 0, 0, 0, 0, 0, 0            },  /* 0x42 'B' */
+   { 1, 'C', 0, 0, 0, 0, 0, 0            },  /* 0x43 'C' */
+   { 1, 'D', 0, 0, 0, 0, 0, 0            },  /* 0x44 'D' */
+   { 1, 'E', 0, 0, 0, 0, 0, 0            },  /* 0x45 'E' */
+   { 1, 'F', 0, 0, 0, 0, 0, 0            },  /* 0x46 'F' */
+   { 1, 'G', 0, 0, 0, 0, 0, 0            },  /* 0x47 'G' */
+   { 1, 'H', 0, 0, 0, 0, 0, 0            },  /* 0x48 'H' */
+   { 1, 'I', 0, 0, 0, 0, 0, 0            },  /* 0x49 'I' */
+   { 1, 'J', 0, 0, 0, 0, 0, 0            },  /* 0x4a 'J' */
+   { 1, 'K', 0, 0, 0, 0, 0, 0            },  /* 0x4b 'K' */
+   { 1, 'L', 0, 0, 0, 0, 0, 0            },  /* 0x4c 'L' */
+   { 1, 'M', 0, 0, 0, 0, 0, 0            },  /* 0x4d 'M' */
+   { 1, 'N', 0, 0, 0, 0, 0, 0            },  /* 0x4e 'N' */
+   { 1, 'O', 0, 0, 0, 0, 0, 0            },  /* 0x4f 'O' */
+   { 1, 'P', 0, 0, 0, 0, 0, 0            },  /* 0x50 'P' */
+   { 1, 'Q', 0, 0, 0, 0, 0, 0            },  /* 0x51 'Q' */
+   { 1, 'R', 0, 0, 0, 0, 0, 0            },  /* 0x52 'R' */
+   { 1, 'S', 0, 0, 0, 0, 0, 0            },  /* 0x53 'S' */
+   { 1, 'T', 0, 0, 0, 0, 0, 0            },  /* 0x54 'T' */
+   { 1, 'U', 0, 0, 0, 0, 0, 0            },  /* 0x55 'U' */
+   { 1, 'V', 0, 0, 0, 0, 0, 0            },  /* 0x56 'V' */
+   { 1, 'W', 0, 0, 0, 0, 0, 0            },  /* 0x57 'W' */
+   { 1, 'X', 0, 0, 0, 0, 0, 0            },  /* 0x58 'X' */
+   { 1, 'Y', 0, 0, 0, 0, 0, 0            },  /* 0x59 'Y' */
+   { 1, 'Z', 0, 0, 0, 0, 0, 0            },  /* 0x5a 'Z' */
+   { 1, '[', 0, 0, 0, 0, 0, 0            },  /* 0x5b '[' */
+   { 2, '\\', '\\', 0, 0, 0, 0, 0        },  /* 0x5c '\\' */
+   { 1, ']', 0, 0, 0, 0, 0, 0            },  /* 0x5d ']' */
+   { 1, '^', 0, 0, 0, 0, 0, 0            },  /* 0x5e '^' */
+   { 1, '_', 0, 0, 0, 0, 0, 0            },  /* 0x5f '_' */
+   { 1, '`', 0, 0, 0, 0, 0, 0            },  /* 0x60 '`' */
+   { 1, 'a', 0, 0, 0, 0, 0, 0            },  /* 0x61 'a' */
+   { 1, 'b', 0, 0, 0, 0, 0, 0            },  /* 0x62 'b' */
+   { 1, 'c', 0, 0, 0, 0, 0, 0            },  /* 0x63 'c' */
+   { 1, 'd', 0, 0, 0, 0, 0, 0            },  /* 0x64 'd' */
+   { 1, 'e', 0, 0, 0, 0, 0, 0            },  /* 0x65 'e' */
+   { 1, 'f', 0, 0, 0, 0, 0, 0            },  /* 0x66 'f' */
+   { 1, 'g', 0, 0, 0, 0, 0, 0            },  /* 0x67 'g' */
+   { 1, 'h', 0, 0, 0, 0, 0, 0            },  /* 0x68 'h' */
+   { 1, 'i', 0, 0, 0, 0, 0, 0            },  /* 0x69 'i' */
+   { 1, 'j', 0, 0, 0, 0, 0, 0            },  /* 0x6a 'j' */
+   { 1, 'k', 0, 0, 0, 0, 0, 0            },  /* 0x6b 'k' */
+   { 1, 'l', 0, 0, 0, 0, 0, 0            },  /* 0x6c 'l' */
+   { 1, 'm', 0, 0, 0, 0, 0, 0            },  /* 0x6d 'm' */
+   { 1, 'n', 0, 0, 0, 0, 0, 0            },  /* 0x6e 'n' */
+   { 1, 'o', 0, 0, 0, 0, 0, 0            },  /* 0x6f 'o' */
+   { 1, 'p', 0, 0, 0, 0, 0, 0            },  /* 0x70 'p' */
+   { 1, 'q', 0, 0, 0, 0, 0, 0            },  /* 0x71 'q' */
+   { 1, 'r', 0, 0, 0, 0, 0, 0            },  /* 0x72 'r' */
+   { 1, 's', 0, 0, 0, 0, 0, 0            },  /* 0x73 's' */
+   { 1, 't', 0, 0, 0, 0, 0, 0            },  /* 0x74 't' */
+   { 1, 'u', 0, 0, 0, 0, 0, 0            },  /* 0x75 'u' */
+   { 1, 'v', 0, 0, 0, 0, 0, 0            },  /* 0x76 'v' */
+   { 1, 'w', 0, 0, 0, 0, 0, 0            },  /* 0x77 'w' */
+   { 1, 'x', 0, 0, 0, 0, 0, 0            },  /* 0x78 'x' */
+   { 1, 'y', 0, 0, 0, 0, 0, 0            },  /* 0x79 'y' */
+   { 1, 'z', 0, 0, 0, 0, 0, 0            },  /* 0x7a 'z' */
+   { 1, '{', 0, 0, 0, 0, 0, 0            },  /* 0x7b '{' */
+   { 1, '|', 0, 0, 0, 0, 0, 0            },  /* 0x7c '|' */
+   { 1, '}', 0, 0, 0, 0, 0, 0            },  /* 0x7d '}' */
+   { 1, '~', 0, 0, 0, 0, 0, 0            },  /* 0x7e '~' */
+   { 6, '\\', 'u', '0', '0', '7', 'f', 0 },  /* 0x7f '\x7f' */
+   { 6, '\\', 'u', '0', '0', '8', '0', 0 },  /* 0x80 '\x80' */
+   { 6, '\\', 'u', '0', '0', '8', '1', 0 },  /* 0x81 '\x81' */
+   { 6, '\\', 'u', '0', '0', '8', '2', 0 },  /* 0x82 '\x82' */
+   { 6, '\\', 'u', '0', '0', '8', '3', 0 },  /* 0x83 '\x83' */
+   { 6, '\\', 'u', '0', '0', '8', '4', 0 },  /* 0x84 '\x84' */
+   { 6, '\\', 'u', '0', '0', '8', '5', 0 },  /* 0x85 '\x85' */
+   { 6, '\\', 'u', '0', '0', '8', '6', 0 },  /* 0x86 '\x86' */
+   { 6, '\\', 'u', '0', '0', '8', '7', 0 },  /* 0x87 '\x87' */
+   { 6, '\\', 'u', '0', '0', '8', '8', 0 },  /* 0x88 '\x88' */
+   { 6, '\\', 'u', '0', '0', '8', '9', 0 },  /* 0x89 '\x89' */
+   { 6, '\\', 'u', '0', '0', '8', 'a', 0 },  /* 0x8a '\x8a' */
+   { 6, '\\', 'u', '0', '0', '8', 'b', 0 },  /* 0x8b '\x8b' */
+   { 6, '\\', 'u', '0', '0', '8', 'c', 0 },  /* 0x8c '\x8c' */
+   { 6, '\\', 'u', '0', '0', '8', 'd', 0 },  /* 0x8d '\x8d' */
+   { 6, '\\', 'u', '0', '0', '8', 'e', 0 },  /* 0x8e '\x8e' */
+   { 6, '\\', 'u', '0', '0', '8', 'f', 0 },  /* 0x8f '\x8f' */
+   { 6, '\\', 'u', '0', '0', '9', '0', 0 },  /* 0x90 '\x90' */
+   { 6, '\\', 'u', '0', '0', '9', '1', 0 },  /* 0x91 '\x91' */
+   { 6, '\\', 'u', '0', '0', '9', '2', 0 },  /* 0x92 '\x92' */
+   { 6, '\\', 'u', '0', '0', '9', '3', 0 },  /* 0x93 '\x93' */
+   { 6, '\\', 'u', '0', '0', '9', '4', 0 },  /* 0x94 '\x94' */
+   { 6, '\\', 'u', '0', '0', '9', '5', 0 },  /* 0x95 '\x95' */
+   { 6, '\\', 'u', '0', '0', '9', '6', 0 },  /* 0x96 '\x96' */
+   { 6, '\\', 'u', '0', '0', '9', '7', 0 },  /* 0x97 '\x97' */
+   { 6, '\\', 'u', '0', '0', '9', '8', 0 },  /* 0x98 '\x98' */
+   { 6, '\\', 'u', '0', '0', '9', '9', 0 },  /* 0x99 '\x99' */
+   { 6, '\\', 'u', '0', '0', '9', 'a', 0 },  /* 0x9a '\x9a' */
+   { 6, '\\', 'u', '0', '0', '9', 'b', 0 },  /* 0x9b '\x9b' */
+   { 6, '\\', 'u', '0', '0', '9', 'c', 0 },  /* 0x9c '\x9c' */
+   { 6, '\\', 'u', '0', '0', '9', 'd', 0 },  /* 0x9d '\x9d' */
+   { 6, '\\', 'u', '0', '0', '9', 'e', 0 },  /* 0x9e '\x9e' */
+   { 6, '\\', 'u', '0', '0', '9', 'f', 0 },  /* 0x9f '\x9f' */
+   { 6, '\\', 'u', '0', '0', 'a', '0', 0 },  /* 0xa0 '\xa0' */
+   { 6, '\\', 'u', '0', '0', 'a', '1', 0 },  /* 0xa1 '¡' */
+   { 6, '\\', 'u', '0', '0', 'a', '2', 0 },  /* 0xa2 '¢' */
+   { 6, '\\', 'u', '0', '0', 'a', '3', 0 },  /* 0xa3 '£' */
+   { 6, '\\', 'u', '0', '0', 'a', '4', 0 },  /* 0xa4 '¤' */
+   { 6, '\\', 'u', '0', '0', 'a', '5', 0 },  /* 0xa5 '¥' */
+   { 6, '\\', 'u', '0', '0', 'a', '6', 0 },  /* 0xa6 '¦' */
+   { 6, '\\', 'u', '0', '0', 'a', '7', 0 },  /* 0xa7 '§' */
+   { 6, '\\', 'u', '0', '0', 'a', '8', 0 },  /* 0xa8 '¨' */
+   { 6, '\\', 'u', '0', '0', 'a', '9', 0 },  /* 0xa9 '©' */
+   { 6, '\\', 'u', '0', '0', 'a', 'a', 0 },  /* 0xaa 'ª' */
+   { 6, '\\', 'u', '0', '0', 'a', 'b', 0 },  /* 0xab '«' */
+   { 6, '\\', 'u', '0', '0', 'a', 'c', 0 },  /* 0xac '¬' */
+   { 6, '\\', 'u', '0', '0', 'a', 'd', 0 },  /* 0xad '\xad' */
+   { 6, '\\', 'u', '0', '0', 'a', 'e', 0 },  /* 0xae '®' */
+   { 6, '\\', 'u', '0', '0', 'a', 'f', 0 },  /* 0xaf '¯' */
+   { 6, '\\', 'u', '0', '0', 'b', '0', 0 },  /* 0xb0 '°' */
+   { 6, '\\', 'u', '0', '0', 'b', '1', 0 },  /* 0xb1 '±' */
+   { 6, '\\', 'u', '0', '0', 'b', '2', 0 },  /* 0xb2 '²' */
+   { 6, '\\', 'u', '0', '0', 'b', '3', 0 },  /* 0xb3 '³' */
+   { 6, '\\', 'u', '0', '0', 'b', '4', 0 },  /* 0xb4 '´' */
+   { 6, '\\', 'u', '0', '0', 'b', '5', 0 },  /* 0xb5 'µ' */
+   { 6, '\\', 'u', '0', '0', 'b', '6', 0 },  /* 0xb6 '¶' */
+   { 6, '\\', 'u', '0', '0', 'b', '7', 0 },  /* 0xb7 '·' */
+   { 6, '\\', 'u', '0', '0', 'b', '8', 0 },  /* 0xb8 '¸' */
+   { 6, '\\', 'u', '0', '0', 'b', '9', 0 },  /* 0xb9 '¹' */
+   { 6, '\\', 'u', '0', '0', 'b', 'a', 0 },  /* 0xba 'º' */
+   { 6, '\\', 'u', '0', '0', 'b', 'b', 0 },  /* 0xbb '»' */
+   { 6, '\\', 'u', '0', '0', 'b', 'c', 0 },  /* 0xbc '¼' */
+   { 6, '\\', 'u', '0', '0', 'b', 'd', 0 },  /* 0xbd '½' */
+   { 6, '\\', 'u', '0', '0', 'b', 'e', 0 },  /* 0xbe '¾' */
+   { 6, '\\', 'u', '0', '0', 'b', 'f', 0 },  /* 0xbf '¿' */
+   { 6, '\\', 'u', '0', '0', 'c', '0', 0 },  /* 0xc0 'À' */
+   { 6, '\\', 'u', '0', '0', 'c', '1', 0 },  /* 0xc1 'Á' */
+   { 6, '\\', 'u', '0', '0', 'c', '2', 0 },  /* 0xc2 'Â' */
+   { 6, '\\', 'u', '0', '0', 'c', '3', 0 },  /* 0xc3 'Ã' */
+   { 6, '\\', 'u', '0', '0', 'c', '4', 0 },  /* 0xc4 'Ä' */
+   { 6, '\\', 'u', '0', '0', 'c', '5', 0 },  /* 0xc5 'Å' */
+   { 6, '\\', 'u', '0', '0', 'c', '6', 0 },  /* 0xc6 'Æ' */
+   { 6, '\\', 'u', '0', '0', 'c', '7', 0 },  /* 0xc7 'Ç' */
+   { 6, '\\', 'u', '0', '0', 'c', '8', 0 },  /* 0xc8 'È' */
+   { 6, '\\', 'u', '0', '0', 'c', '9', 0 },  /* 0xc9 'É' */
+   { 6, '\\', 'u', '0', '0', 'c', 'a', 0 },  /* 0xca 'Ê' */
+   { 6, '\\', 'u', '0', '0', 'c', 'b', 0 },  /* 0xcb 'Ë' */
+   { 6, '\\', 'u', '0', '0', 'c', 'c', 0 },  /* 0xcc 'Ì' */
+   { 6, '\\', 'u', '0', '0', 'c', 'd', 0 },  /* 0xcd 'Í' */
+   { 6, '\\', 'u', '0', '0', 'c', 'e', 0 },  /* 0xce 'Î' */
+   { 6, '\\', 'u', '0', '0', 'c', 'f', 0 },  /* 0xcf 'Ï' */
+   { 6, '\\', 'u', '0', '0', 'd', '0', 0 },  /* 0xd0 'Ð' */
+   { 6, '\\', 'u', '0', '0', 'd', '1', 0 },  /* 0xd1 'Ñ' */
+   { 6, '\\', 'u', '0', '0', 'd', '2', 0 },  /* 0xd2 'Ò' */
+   { 6, '\\', 'u', '0', '0', 'd', '3', 0 },  /* 0xd3 'Ó' */
+   { 6, '\\', 'u', '0', '0', 'd', '4', 0 },  /* 0xd4 'Ô' */
+   { 6, '\\', 'u', '0', '0', 'd', '5', 0 },  /* 0xd5 'Õ' */
+   { 6, '\\', 'u', '0', '0', 'd', '6', 0 },  /* 0xd6 'Ö' */
+   { 6, '\\', 'u', '0', '0', 'd', '7', 0 },  /* 0xd7 '×' */
+   { 6, '\\', 'u', '0', '0', 'd', '8', 0 },  /* 0xd8 'Ø' */
+   { 6, '\\', 'u', '0', '0', 'd', '9', 0 },  /* 0xd9 'Ù' */
+   { 6, '\\', 'u', '0', '0', 'd', 'a', 0 },  /* 0xda 'Ú' */
+   { 6, '\\', 'u', '0', '0', 'd', 'b', 0 },  /* 0xdb 'Û' */
+   { 6, '\\', 'u', '0', '0', 'd', 'c', 0 },  /* 0xdc 'Ü' */
+   { 6, '\\', 'u', '0', '0', 'd', 'd', 0 },  /* 0xdd 'Ý' */
+   { 6, '\\', 'u', '0', '0', 'd', 'e', 0 },  /* 0xde 'Þ' */
+   { 6, '\\', 'u', '0', '0', 'd', 'f', 0 },  /* 0xdf 'ß' */
+   { 6, '\\', 'u', '0', '0', 'e', '0', 0 },  /* 0xe0 'à' */
+   { 6, '\\', 'u', '0', '0', 'e', '1', 0 },  /* 0xe1 'á' */
+   { 6, '\\', 'u', '0', '0', 'e', '2', 0 },  /* 0xe2 'â' */
+   { 6, '\\', 'u', '0', '0', 'e', '3', 0 },  /* 0xe3 'ã' */
+   { 6, '\\', 'u', '0', '0', 'e', '4', 0 },  /* 0xe4 'ä' */
+   { 6, '\\', 'u', '0', '0', 'e', '5', 0 },  /* 0xe5 'å' */
+   { 6, '\\', 'u', '0', '0', 'e', '6', 0 },  /* 0xe6 'æ' */
+   { 6, '\\', 'u', '0', '0', 'e', '7', 0 },  /* 0xe7 'ç' */
+   { 6, '\\', 'u', '0', '0', 'e', '8', 0 },  /* 0xe8 'è' */
+   { 6, '\\', 'u', '0', '0', 'e', '9', 0 },  /* 0xe9 'é' */
+   { 6, '\\', 'u', '0', '0', 'e', 'a', 0 },  /* 0xea 'ê' */
+   { 6, '\\', 'u', '0', '0', 'e', 'b', 0 },  /* 0xeb 'ë' */
+   { 6, '\\', 'u', '0', '0', 'e', 'c', 0 },  /* 0xec 'ì' */
+   { 6, '\\', 'u', '0', '0', 'e', 'd', 0 },  /* 0xed 'í' */
+   { 6, '\\', 'u', '0', '0', 'e', 'e', 0 },  /* 0xee 'î' */
+   { 6, '\\', 'u', '0', '0', 'e', 'f', 0 },  /* 0xef 'ï' */
+   { 6, '\\', 'u', '0', '0', 'f', '0', 0 },  /* 0xf0 'ð' */
+   { 6, '\\', 'u', '0', '0', 'f', '1', 0 },  /* 0xf1 'ñ' */
+   { 6, '\\', 'u', '0', '0', 'f', '2', 0 },  /* 0xf2 'ò' */
+   { 6, '\\', 'u', '0', '0', 'f', '3', 0 },  /* 0xf3 'ó' */
+   { 6, '\\', 'u', '0', '0', 'f', '4', 0 },  /* 0xf4 'ô' */
+   { 6, '\\', 'u', '0', '0', 'f', '5', 0 },  /* 0xf5 'õ' */
+   { 6, '\\', 'u', '0', '0', 'f', '6', 0 },  /* 0xf6 'ö' */
+   { 6, '\\', 'u', '0', '0', 'f', '7', 0 },  /* 0xf7 '÷' */
+   { 6, '\\', 'u', '0', '0', 'f', '8', 0 },  /* 0xf8 'ø' */
+   { 6, '\\', 'u', '0', '0', 'f', '9', 0 },  /* 0xf9 'ù' */
+   { 6, '\\', 'u', '0', '0', 'f', 'a', 0 },  /* 0xfa 'ú' */
+   { 6, '\\', 'u', '0', '0', 'f', 'b', 0 },  /* 0xfb 'û' */
+   { 6, '\\', 'u', '0', '0', 'f', 'c', 0 },  /* 0xfc 'ü' */
+   { 6, '\\', 'u', '0', '0', 'f', 'd', 0 },  /* 0xfd 'ý' */
+   { 6, '\\', 'u', '0', '0', 'f', 'e', 0 },  /* 0xfe 'þ' */
+   { 6, '\\', 'u', '0', '0', 'f', 'f', 0 },  /* 0xff 'ÿ' */
 };
-const unsigned __int128 EscapeDct::is_escaped_array = (
-    ((unsigned __int128) 0x8000000010000000 << 64) |
-    ((unsigned __int128) 0x500000c4ffffffff)
-);
+const std::uint64_t EscapeDct::is_escaped_lo = UINT64_C(0x500000c4ffffffff);
+const std::uint64_t EscapeDct::is_escaped_hi = UINT64_C(0x8000000010000000);
diff --git a/src/native.hpp b/src/native.hpp
index 591a559..1fb3a1e 100644
--- a/src/native.hpp
+++ b/src/native.hpp
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef JSON5EncoderCpp_native
+#define JSON5EncoderCpp_native
 
 #include <array>
 #include <cstdint>
@@ -57,18 +58,22 @@
 constexpr char HEX[] = "0123456789abcdef";
 
 struct EscapeDct {
-    using Item = std::array<char, 8>;  // length, unto 6 characters, terminator (actually not needed)
+    using Item = std::array<char, 8>;  // length, upto 6 characters, terminator (actually not needed)
     static constexpr std::size_t length = 0x100;
     using Items = Item[length];
 
     static const Items items;
-    static const unsigned __int128 is_escaped_array;
+    static const std::uint64_t is_escaped_lo;
+    static const std::uint64_t is_escaped_hi;
 
     static inline bool is_escaped(std::uint32_t c) {
-        return (c >= 0x0080) || (is_escaped_array & (
-            static_cast<unsigned __int128>(1) <<
-            static_cast<std::uint8_t>(c)
-        ));
+        if (c < 0x40) {
+            return is_escaped_lo & (static_cast<std::uint64_t>(1) << c);
+        } else if (c < 0x80) {
+            return is_escaped_hi & (static_cast<std::uint64_t>(1) << (c - 0x40));
+        } else {
+            return true;
+        }
     }
 
     template <class S>
@@ -96,3 +101,5 @@
 static constexpr std::size_t LONGDESCRIPTION_LENGTH = sizeof(LONGDESCRIPTION) - 1;
 
 }
+
+#endif