<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Richard,</p>
    <blockquote type="cite"
      cite="mid:b78c231b-0b2f-8706-67e7-cc622be68f6e@in.terlu.de">
      <pre class="moz-quote-pre" wrap="">Can you, please, try to explicitly delete the default ctors instead?
Find a patch attached.
</pre>
    </blockquote>
    <p>the patch leads to</p>
    <p><span style="font-family:monospace"><span
          style="color:#000000;background-color:#ffffff;">lst.h(35):
          error C2280:
'GiNaC::class_info<GiNaC::registered_class_options>::class_info(void)':
          attempting to reference a deleted function
        </span><br>
        class_info.h(48): note: see declaration of
        'GiNaC::class_info<GiNaC::registered_class_options>::class_info'
        <br>
        class_info.h(48): note:
'GiNaC::class_info<GiNaC::registered_class_options>::class_info(void)':
        function was explicitly deleted
        <br>
        exprseq.h(35): error C2280:
'GiNaC::class_info<GiNaC::registered_class_options>::class_info(void)':
        attempting to reference a deleted function
        <br>
        class_info.h(48): note: see declaration of
        'GiNaC::class_info<GiNaC::registered_class_options>::class_info'
        <br>
        class_info.h(48): note:
'GiNaC::class_info<GiNaC::registered_class_options>::class_info(void)':
        function was explicitly deleted</span></p>
    <p>But since these two lines are exactly those two which we need to
      #ifdef away because of the C2766 error, both errors can be
      resolved by a simple patch:</p>
    <p><span style="font-family:monospace"><span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">diff
          --git a/ginac/exprseq.h b/ginac/exprseq.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">index
          dea1e38e..61a2527d 100644</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">---
          a/ginac/exprseq.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">+++
          b/ginac/exprseq.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b2b2;background-color:#ffffff;">@@ -32,7
          +32,10 @@</span><span
          style="color:#000000;background-color:#ffffff;"> namespace
          GiNaC {
        </span><br>
        typedef container<std::vector> exprseq;
        <br>
         <br>
        /** Declaration of container::reg_info for exprseq. */
        <br>
        <span style="color:#18b218;background-color:#ffffff;">+#ifndef
          _MSC_VER</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b218;background-color:#ffffff;">+// Avoid
          exprseq.cpp(27): error C2766: explicit specialization;
          'reg_info' has already been defined</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        template<> registered_class_info exprseq::reg_info;
        <br>
        <span style="color:#18b218;background-color:#ffffff;">+#endif</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
         <br>
        // defined in exprseq.cpp
        <br>
        template<> bool exprseq::info(unsigned inf) const;
        <br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">diff
          --git a/ginac/lst.h b/ginac/lst.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">index
          6b047c69..415abd03 100644</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">---
          a/ginac/lst.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
          style="font-weight:bold;color:#000000;background-color:#ffffff;">+++
          b/ginac/lst.h</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b2b2;background-color:#ffffff;">@@ -32,7
          +32,10 @@</span><span
          style="color:#000000;background-color:#ffffff;"> namespace
          GiNaC {
        </span><br>
        typedef container<std::list> lst;
        <br>
         <br>
        /** Declaration of container::reg_info for lst. */
        <br>
        <span style="color:#18b218;background-color:#ffffff;">+#ifndef
          _MSC_VER</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b218;background-color:#ffffff;">+// Avoid
          lst.cpp(28): error C2766: explicit specialization; 'reg_info'
          has already been defined</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        template<> registered_class_info lst::reg_info;
        <br>
        <span style="color:#18b218;background-color:#ffffff;">+#endif</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
         <br>
        /** Specialization of container::get_default_flags() for lst. */
        <br>
        template<> inline unsigned lst::get_default_flags() {
        return status_flags::not_shareable; }<br>
      </span></p>
    <p>This compiles and all checks pass.</p>
    <p>By the way, both declaration and definition in lst.h/cpp and
      exprseq.h/cpp seem to be superfluous, since even without them all
      tests also pass successfully...</p>
    <p>Jan</p>
    <p><span style="font-family:monospace"></span></p>
  </body>
</html>