<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 05. 11. 20 15:47, Marshall Clow via
      cfe-users wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:16597EAB-43EA-4745-B832-19FD364292B6@gmail.com"><span
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">I tried this code on
        compiler explorer.</span><br style="caret-color: rgb(0, 0, 0);
        color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">It compiles w/o error
        with clang + libc++</span><br style="caret-color: rgb(0, 0, 0);
        color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">It fails to compile
        with clang and libstdc++</span><br style="caret-color: rgb(0, 0,
        0); color: rgb(0, 0, 0); font-family: Helvetica; font-size:
        12px; font-style: normal; font-variant-caps: normal;
        font-weight: normal; letter-spacing: normal; orphans: auto;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">The error message
        given is:</span><br style="caret-color: rgb(0, 0, 0); color:
        rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">In file included from
        <source>:1:</span><br style="caret-color: rgb(0, 0, 0);
        color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">/opt/compiler-explorer/gcc-10.2.0/lib/gcc/x86_64-linux-gnu/10.2.0/../../../../include/c++/10.2.0/optional:158:7:
        error: the parameter for this explicitly-defaulted copy
        assignment operator is const, but a member or base requires it
        to be non-const</span><br style="caret-color: rgb(0, 0, 0);
        color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">     operator=(const
        _Optional_payload_base&) = default;</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">     ^</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">/opt/compiler-explorer/gcc-10.2.0/lib/gcc/x86_64-linux-gnu/10.2.0/../../../../include/c++/10.2.0/optional:357:7:
        note: in instantiation of template class
        'std::_Optional_payload_base<S>' requested here</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">   :
        _Optional_payload_base<_Tp></span><br style="caret-color:
        rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica;
        font-size: 12px; font-style: normal; font-variant-caps: normal;
        font-weight: normal; letter-spacing: normal; orphans: auto;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">     ^</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">/opt/compiler-explorer/gcc-10.2.0/lib/gcc/x86_64-linux-gnu/10.2.0/../../../../include/c++/10.2.0/optional:631:30:
        note: in instantiation of template class
        'std::_Optional_payload<S, true, false, false>' requested
        here</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0,
        0, 0); font-family: Helvetica; font-size: 12px; font-style:
        normal; font-variant-caps: normal; font-weight: normal;
        letter-spacing: normal; orphans: auto; text-align: start;
        text-indent: 0px; text-transform: none; white-space: normal;
        widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">     _Optional_payload<_Tp>
        _M_payload;</span><br style="caret-color: rgb(0, 0, 0); color:
        rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
        font-style: normal; font-variant-caps: normal; font-weight:
        normal; letter-spacing: normal; orphans: auto; text-align:
        start; text-indent: 0px; text-transform: none; white-space:
        normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">                            ^</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">/opt/compiler-explorer/gcc-10.2.0/lib/gcc/x86_64-linux-gnu/10.2.0/../../../../include/c++/10.2.0/optional:660:15:
        note: in instantiation of template class
        'std::_Optional_base<S, true, true>' requested here</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">   : private
        _Optional_base<_Tp>,</span><br style="caret-color: rgb(0,
        0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size:
        12px; font-style: normal; font-variant-caps: normal;
        font-weight: normal; letter-spacing: normal; orphans: auto;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: auto; word-spacing: 0px;
        -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;
        text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">             ^</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class=""><source>:10:20:
        note: in instantiation of template class
        'std::optional<S>' requested here</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class=""> std::optional<S>
        a;</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0,
        0); font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">                  ^</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none; display:
        inline !important; float: none;" class="">1 error generated.</span><br
        style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Helvetica; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
      <br>
    </blockquote>
    <p>I got exactly the same error, but the question is why. Shouldn't
      both g++ and clang++ behave the same way even on the libstdc++
      (which is the default library clang uses on a lot of distros)? Is
      this gcc being too permissive to some bug in libstdc++ or is it a
      clang bug? Should I file a bug report to clang?<br>
    </p>
  </body>
</html>