Re: namespace

Stefan Seefeld via ublas <[email protected]> Fri, 31 May 2019 07:14:11 -0400
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============1495755262608184843==
Content-Type: multipart/alternative;
 boundary="------------ECF068872195E8ABDC676663"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------ECF068872195E8ABDC676663
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2019-05-31 12:35 a.m., David Bellot wrote:
> I never tried with complicated structures, but as far as I know, we 
> can simply do something like:
>
> namespace boost::ublas
> {
>    bla bla bla...
> }
>
> namespace boost::numeric::ublas
> {
>      using namespace boost::ublas;
> }
>
> I just wonder why none of gcc and clang complain about that. I'm 
> obviously missing something because the recursion should be 
> infinite,shouldn't it? 
> https://en.cppreference.com/w/cpp/language/namespace#Using-directives

There is no recursion, as far as I can see, just an alias.

But yes, something like that could work. In fact, I suppose we should 
start from the opposite end: introduce

namespace boost
{
namespace ublas = numeric::ublas;
}

so users can start using boost::ublas::...

Then we can incrementally substitute the original code to rid ourselves 
from boost::numeric.

Stefan
-- 

       ...ich hab' noch einen Koffer in Berlin...


--------------ECF068872195E8ABDC676663
Content-Type: multipart/related;
 boundary="------------F904B4A1F2D4B11EA6DF4854"


--------------F904B4A1F2D4B11EA6DF4854
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2019-05-31 12:35 a.m., David Bellot
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOE6ZJHY3t+QXPw0MTDVp2WbGXyuZJjU6Jwgy_uidy4p-1fKFQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div class="gmail_default"
          style="font-family:arial,helvetica,sans-serif;font-size:small">I
          never tried with complicated structures, but as far as I know,
          we can simply do something like:</div>
        <div class="gmail_default"
          style="font-family:arial,helvetica,sans-serif;font-size:small"><br>
        </div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">namespace boost::ublas</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">{</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">   bla bla bla...</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">}</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace"><br>
          </font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">namespace
            boost::numeric::ublas</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">{<br>
                 using namespace boost::ublas;</font></div>
        <div class="gmail_default" style="font-size:small"><font
            face="courier new, monospace">}</font></div>
        <div class="gmail_default"
          style="font-family:arial,helvetica,sans-serif;font-size:small"><br>
        </div>
        <div class="gmail_default"
          style="font-family:arial,helvetica,sans-serif;font-size:small">I
          just wonder why none of gcc and clang complain about that. I'm
          obviously missing something because the recursion should be
          infinite,shouldn't it? <a
href="https://en.cppreference.com/w/cpp/language/namespace#Using-directives"
            style="font-family:Arial,Helvetica,sans-serif"
            moz-do-not-send="true">https://en.cppreference.com/w/cpp/language/namespace#Using-directives</a></div>
      </div>
    </blockquote>
    <p>There is no recursion, as far as I can see, just an alias.</p>
    <p>But yes, something like that could work. In fact, I suppose we
      should start from the opposite end: introduce</p>
    namespace boost <br>
    {<br>
    namespace ublas = numeric::ublas;<br>
    }<br>
    <p>so users can start using boost::ublas::...</p>
    <p>Then we can incrementally substitute the original code to rid
      ourselves from boost::numeric.<br>
    </p>
    <div class="moz-signature">
      <div class="moz-signature">
        <div class="moz-signature">
          <pre><img moz-do-not-send="false" src="cid:[email protected]" alt="Stefan" width="123" height="77">
-- 

      ...ich hab' noch einen Koffer in Berlin...
</pre>
        </div>
      </div>
    </div>
  </body>
</html>

--------------F904B4A1F2D4B11EA6DF4854
Content-Type: image/png;
 name=".signature.png"
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
Content-Disposition: inline;
 filename=".signature.png"

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

--------------F904B4A1F2D4B11EA6DF4854--

--------------ECF068872195E8ABDC676663--

--===============1495755262608184843==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline