#pragma once #include #include #include namespace floormat::detail::corrade_debug { struct ErrorString final { int value; }; Debug& operator<<(Debug& dbg, ErrorString box); template struct Quoted final { const T& value; }; Debug::Flags debug1(Debug& dbg, char c); Debug& debug2(Debug& dbg, Debug::Flags flags, char c); template Debug& operator<<(Debug& dbg, Quoted box) { Debug::Flags flags = debug1(dbg, '\''); dbg << box.value; return debug2(dbg, flags, '\''); } extern template struct Quoted; } // namespace floormat::detail::corrade_debug namespace floormat { floormat::detail::corrade_debug::ErrorString error_string(int error); template floormat::detail::corrade_debug::Quoted quoted(const T& value) { return { value }; } } // namespace floormat