<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 19, 2019 at 8:58 AM Bjarne Stroustrup &lt;<a href="mailto:bjarne@stroustrup.com">bjarne@stroustrup.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF"><br><blockquote type="cite">
      But, can somebody elaborate on the following, please :<br>
      AFAIK, we get the ability to use auto as function parameters:<br>
      foo(auto x) <br>
      Do we also allow to use concepts here:<br>
      foo(myconcept x) <br>
      If not I bet we will get it later. <br>
      <br>
      HERE I really would like to be able to see that a standard concept
      is used<br>
      So<br>
      foo(myconcept x) <br>
      and <br>
      foo (string x) <br>
      should be able to be seen different. <br>
    </blockquote>
    <p>Why?</p>
    <p>I think that&#39;s a mistake. I used to subscribed to it and
      experimented with quite a few ways of distinguishing concepts, but
      found that they didn&#39;t seem to do anything useful. They were just
      uglier and more distracting than type names. Then I experimented
      with students *not* using distinguishing naming styles and found
      no problems. None. I&#39;m reporting on a couple of years&#39; thinking
      and experimentation here.<br></p></div></blockquote><div><br></div><div>And don&#39;t forget CTAD.</div><div><br></div><div>std::vector&lt;int&gt; x = f();<br></div><div>
std::

vector y = f();</div><div>
std::

Container auto z = f();</div><div>or</div><div>
std::

container z = f(); // some day?<br></div><div><br></div><div>The lines between type/template/concept are blurring, and - other than &amp;&amp; - it isn&#39;t a big problem.</div><br><div></div></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Be seeing you,<br></div>Tony<br></div></div></div>

