title: Cannot format argument from within spdlog
body: <p>I am trying to use <code>spdlog</code>. I incorporated it with my code, but now I am getting the following error:</p>
  
  <pre><code>....fmt\core.h(1016): error C2338: Cannot format argument. To make type T formattable provide a formatter&lt;T&gt; specialization: https://fmt.dev/latest/api.html#formatting-user-defined-types
    ....fmt/core.h(1013): note: while compiling class template member function 'int fmt::v6::internal::arg_mapper&lt;Context&gt;::map(...)'
            with
            [
                Context=context
            ]
    ....fmt/core.h(1213): note: see reference to function template instantiation 'int fmt::v6::internal::arg_mapper&lt;Context&gt;::map(...)' being compiled
            with
            [
                Context=context
            ]
    ....fmt/core.h(1027): note: see reference to class template instantiation 'fmt::v6::internal::arg_mapper&lt;Context&gt;' being compiled
            with
            [
                Context=context
            ]
    ....fmt/core.h(1198): note: see reference to alias template instantiation 'fmt::v6::internal::mapped_type_constant&lt;int,context&gt;' being compiled
    ....fmt/core.h(1342): note: see reference to function template instantiation 'unsigned __int64 fmt::v6::internal::encode_types&lt;Context,int,&gt;(void)' being compiled
            with
            [
                Context=context
            ]
    ....fmt/format.h(3375): note: see reference to class template instantiation 'fmt::v6::format_arg_store&lt;context,int&gt;' being compiled
    ....spdlog/details/fmt_helper.h(49): note: see reference to function template instantiation 'std::back_insert_iterator&lt;fmt::v6::internal::buffer&lt;char&gt;&gt; fmt::v6::format_to&lt;char[6],int&amp;,250,char&gt;(fmt::v6::basic_memory_buffer&lt;char,250,std::allocator&lt;char&gt;&gt; &amp;,const S (&amp;),int &amp;)' being compiled
            with
            [
                S=char [6]
            ]
  </code></pre>
  
  <p>... and this is the end of the error message. It never reaches my code, so I have no idea where to look at. Any ideas what could be the reason for this?</p>
  
  <p>spdlog is version 1.6.1. The last error line is from here:</p>
  
  <pre><code>inline void pad2(int n, memory_buf_t &amp;dest)
  {
      if (n &gt;= 0 &amp;&amp; n &lt; 100) // 0-99
      {
          dest.push_back(static_cast&lt;char&gt;('0' + n / 10));
          dest.push_back(static_cast&lt;char&gt;('0' + n % 10));
      }
      else // unlikely, but just in case, let fmt deal with it
      {
          fmt::format_to(dest, "{:02}", n);  // &lt;--- HERE
      }
  }
  </code></pre>
  
  <p>and it doesn't look particularly wrong to me.</p>
  
  <hr>
  
  <p>Update: after some try-and-errors commenting out all <code>spdlog</code> invocations I narrowed it down to this:</p>
  
  <p><code>spdlog::info("Foo{}", Point{1, 2});</code></p>
  
  <p>Where <code>Point</code> is my own class in my own namespace. I do provide for it a way to print itself:</p>
  
  <pre><code>template&lt;typename OStream&gt;
  OStream &amp;operator&lt;&lt;(OStream &amp;os, const Point &amp;p) {
      return os &lt;&lt; "[" &lt;&lt; p.x &lt;&lt; ", " &lt;&lt; p.y &lt;&lt; "]";
  }
  </code></pre>