Topic: Multiple files inclusion in single line


Author: ramaswamy.be@gmail.com
Date: Thu, 1 Jan 2015 02:30:13 -0800 (PST)
Raw View
------=_Part_4954_396713210.1420108213661
Content-Type: multipart/alternative;
 boundary="----=_Part_4955_1769680182.1420108213661"

------=_Part_4955_1769680182.1420108213661
Content-Type: text/plain; charset=UTF-8

Hi All,

While including multiple files we follow the syntax like this (both C and
C++)

#include <iostream>
#include <memory>
#include <thread>
#include <chrono>
#include <mutex>

Instead of doing like above, it is convenient if we can include multiple
 files in single line

*#include <iostream, memory, thread, chrono, mutex>*
*OR *
*#include <[iostream, memory, thread, chrono, mutex]>*

It makes some time very useful to include the long path inclusion files

For examples
We normally include the boost log  files like below

#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expression.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/utility/setup/files.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>

It can include in the fashion similar  Bash shell file reference

*#include <boost/log/{core,trivial,expression}.hpp>*
*#include <boost/log/{utility/setup/{files,common_attributes}
sources/{severity_logger,record_ostream}.hpp>*

It can be formatted bit more better

Let me know your thoughts about this.

Regards
Ramaswamy B.A

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_4955_1769680182.1420108213661
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi All,<div><br></div><div>While including multiple files =
we follow the syntax like this (both C and C++)</div><div><br></div><div>#i=
nclude &lt;iostream&gt;</div><div>#include &lt;memory&gt;</div><div>#includ=
e &lt;thread&gt;</div><div>#include &lt;chrono&gt;</div><div>#include &lt;m=
utex&gt;</div><div><br></div><div>Instead of doing like above, it is conven=
ient if we can include multiple &nbsp;files in single line</div><div><br></=
div><div><i><font color=3D"#0000ff">#include &lt;iostream, memory, thread, =
chrono, mutex&gt;</font></i></div><div><i><font color=3D"#0000ff">OR&nbsp;<=
/font></i></div><div><i><font color=3D"#0000ff">#include &lt;[iostream, mem=
ory, thread, chrono, mutex]&gt;</font></i><br></div><div><br></div><div>It =
makes some time very useful to include the long path inclusion files</div><=
div><br></div><div>For examples&nbsp;</div><div>We normally include the boo=
st log &nbsp;files like below&nbsp;</div><div><br></div><div>#include &lt;b=
oost/log/core.hpp&gt;</div><div>#include &lt;boost/log/trivial.hpp&gt;</div=
><div>#include &lt;boost/log/expression.hpp&gt;</div><div>#include &lt;boos=
t/log/sinks/text_file_backend.hpp&gt;</div><div>#include &lt;boost/log/util=
ity/setup/files.hpp&gt;</div><div>#include &lt;boost/log/utility/setup/comm=
on_attributes.hpp&gt;</div><div>#include &lt;boost/log/sources/severity_log=
ger.hpp&gt;</div><div>#include &lt;boost/log/sources/record_ostream.hpp&gt;=
</div><div><br></div><div>It can include in the fashion similar &nbsp;Bash =
shell file reference&nbsp;</div><div><br></div><div><font color=3D"#0000ff"=
><i>#include &lt;boost/log/{core,trivial,expression}.hpp&gt;</i></font></di=
v><div><font color=3D"#0000ff"><i>#include &lt;boost/log/{utility/setup/{fi=
les,common_attributes} sources/{severity_logger,record_ostream}.hpp&gt;</i>=
</font></div><div><br></div><div>It can be formatted bit more better</div><=
div><br></div><div>Let me know your thoughts about this.</div><div><br></di=
v><div>Regards</div><div>Ramaswamy B.A</div><div><br></div></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_4955_1769680182.1420108213661--
------=_Part_4954_396713210.1420108213661--

.


Author: David Krauss <potswa@gmail.com>
Date: Thu, 1 Jan 2015 19:56:11 +0800
Raw View
--Apple-Mail=_F93700B5-227E-4BE4-B73D-CB1E17D56C08
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8


> On 2015=E2=80=9301=E2=80=9301, at 6:30 PM, ramaswamy.be@gmail.com wrote:
>=20
> Instead of doing like above, it is convenient if we can include multiple =
 files in single line
>=20
> #include <iostream, memory, thread, chrono, mutex>

The interface between header names and the file system is implementation-sp=
ecific. This would be a conforming extension, equivalent to offering a nons=
tandard platform header with a name including commas and contents equivalen=
t to the concatenation of the individual files.

With Boost.Preprocessor or the like, you could implement your own utility w=
ith syntax like

#define INCLUDE_FILES iostream, memory, thread, chrono, mutex
#include "include_multiple.h"

> Let me know your thoughts about this.

I don=E2=80=99t think the feature would be popular enough to catch on, but =
if you added it to your favorite open-source compiler, they would have no g=
rounds to reject the contribution on the basis of the standard. (They could=
 find another reason, though.)

You could rephrase the idea in terms of modules, which are intended to supe=
rsede headers. I don=E2=80=99t know whether the standard library is expecte=
d to map to one or several modules, though.

--=20

---=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

--Apple-Mail=_F93700B5-227E-4BE4-B73D-CB1E17D56C08
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dutf-8"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><br class=3D""><di=
v><blockquote type=3D"cite" class=3D""><div class=3D"">On 2015=E2=80=9301=
=E2=80=9301, at 6:30 PM, <a href=3D"mailto:ramaswamy.be@gmail.com" class=3D=
"">ramaswamy.be@gmail.com</a> wrote:</div><br class=3D"Apple-interchange-ne=
wline"><div class=3D""><div dir=3D"ltr" class=3D""><div class=3D"">Instead =
of doing like above, it is convenient if we can include multiple &nbsp;file=
s in single line</div><div class=3D""><br class=3D""></div><div class=3D"">=
<i class=3D""><font color=3D"#0000ff" class=3D"">#include &lt;iostream, mem=
ory, thread, chrono, mutex&gt;</font></i></div></div></div></blockquote><di=
v><br class=3D""></div><div>The interface between header names and the file=
 system is implementation-specific. This would be a conforming extension, e=
quivalent to offering a nonstandard platform header with a name including c=
ommas and contents equivalent to the concatenation of the individual files.=
</div><div><br class=3D""></div><div>With Boost.Preprocessor or the like, y=
ou could implement your own utility with syntax like</div><div><br class=3D=
""></div><div><font face=3D"Courier" class=3D"">#define INCLUDE_FILES iostr=
eam, memory, thread, chrono, mutex</font></div><div><font face=3D"Courier" =
class=3D"">#include "include_multiple.h"</font></div><div><br class=3D""></=
div><blockquote type=3D"cite" class=3D""><div dir=3D"ltr" class=3D""><div c=
lass=3D"">Let me know your thoughts about this.</div></div></blockquote><br=
 class=3D""></div>I don=E2=80=99t think the feature would be popular enough=
 to catch on, but if you added it to your favorite open-source compiler, th=
ey would have no grounds to reject the contribution on the basis of the sta=
ndard. (They could find another reason, though.)<div class=3D""><br class=
=3D""></div><div class=3D"">You could rephrase the idea in terms of modules=
, which are intended to supersede headers. I don=E2=80=99t know whether the=
 standard library is expected to map to one or several modules, though.</di=
v></body></html>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--Apple-Mail=_F93700B5-227E-4BE4-B73D-CB1E17D56C08--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Fri, 02 Jan 2015 01:37:57 -0200
Raw View
On Thursday 01 January 2015 02:30:13 ramaswamy.be@gmail.com wrote:
> *#include <iostream, memory, thread, chrono, mutex>*
> *OR *
> *#include <[iostream, memory, thread, chrono, mutex]>*
>
> It makes some time very useful to include the long path inclusion files

Or:

#include <iostream> <memory> <thread> <chrono> <mutex>

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

.


Author: ramkumar.revanur@gmail.com
Date: Fri, 2 Jan 2015 10:04:21 -0800 (PST)
Raw View
------=_Part_404_1245107530.1420221861594
Content-Type: multipart/alternative;
 boundary="----=_Part_405_1066442540.1420221861594"

------=_Part_405_1066442540.1420221861594
Content-Type: text/plain; charset=UTF-8

The idea of having multiple files included in a single line is a good idea.
Format can be debated.
The common inclusion path can be a prefix to the headers.

for example :

#include [lookup/directory/path] <file1.ext> <file2.ext>
[lookup/directory/another/path] <file3.ext> <file4.ext>


On Thursday, 1 January 2015 16:00:13 UTC+5:30, Ramaswamy B.A wrote:
>
> Hi All,
>
> While including multiple files we follow the syntax like this (both C and
> C++)
>
> #include <iostream>
> #include <memory>
> #include <thread>
> #include <chrono>
> #include <mutex>
>
> Instead of doing like above, it is convenient if we can include multiple
>  files in single line
>
> *#include <iostream, memory, thread, chrono, mutex>*
> *OR *
> *#include <[iostream, memory, thread, chrono, mutex]>*
>
> It makes some time very useful to include the long path inclusion files
>
> For examples
> We normally include the boost log  files like below
>
> #include <boost/log/core.hpp>
> #include <boost/log/trivial.hpp>
> #include <boost/log/expression.hpp>
> #include <boost/log/sinks/text_file_backend.hpp>
> #include <boost/log/utility/setup/files.hpp>
> #include <boost/log/utility/setup/common_attributes.hpp>
> #include <boost/log/sources/severity_logger.hpp>
> #include <boost/log/sources/record_ostream.hpp>
>
> It can include in the fashion similar  Bash shell file reference
>
> *#include <boost/log/{core,trivial,expression}.hpp>*
> *#include <boost/log/{utility/setup/{files,common_attributes}
> sources/{severity_logger,record_ostream}.hpp>*
>
> It can be formatted bit more better
>
> Let me know your thoughts about this.
>
> Regards
> Ramaswamy B.A
>
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_405_1066442540.1420221861594
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">The idea of having multiple files included in a single lin=
e is a good idea. Format can be debated.<div>The common inclusion path can =
be a prefix to the headers.</div><div><br></div><div>for example :&nbsp;</d=
iv><div><br></div><div>#include [lookup/directory/path] &lt;file1.ext&gt; &=
lt;file2.ext&gt; [lookup/directory/another/path] &lt;file3.ext&gt; &lt;file=
4.ext&gt;</div><div><br></div><div><br>On Thursday, 1 January 2015 16:00:13=
 UTC+5:30, Ramaswamy B.A  wrote:<blockquote class=3D"gmail_quote" style=3D"=
margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;=
"><div dir=3D"ltr">Hi All,<div><br></div><div>While including multiple file=
s we follow the syntax like this (both C and C++)</div><div><br></div><div>=
#include &lt;iostream&gt;</div><div>#include &lt;memory&gt;</div><div>#incl=
ude &lt;thread&gt;</div><div>#include &lt;chrono&gt;</div><div>#include &lt=
;mutex&gt;</div><div><br></div><div>Instead of doing like above, it is conv=
enient if we can include multiple &nbsp;files in single line</div><div><br>=
</div><div><i><font color=3D"#0000ff">#include &lt;iostream, memory, thread=
, chrono, mutex&gt;</font></i></div><div><i><font color=3D"#0000ff">OR&nbsp=
;</font></i></div><div><i><font color=3D"#0000ff">#include &lt;[iostream, m=
emory, thread, chrono, mutex]&gt;</font></i><br></div><div><br></div><div>I=
t makes some time very useful to include the long path inclusion files</div=
><div><br></div><div>For examples&nbsp;</div><div>We normally include the b=
oost log &nbsp;files like below&nbsp;</div><div><br></div><div>#include &lt=
;boost/log/core.hpp&gt;</div><div>#include &lt;boost/log/trivial.hpp&gt;</d=
iv><div>#include &lt;boost/log/expression.hpp&gt;</div><div>#include &lt;bo=
ost/log/sinks/text_file_<wbr>backend.hpp&gt;</div><div>#include &lt;boost/l=
og/utility/setup/<wbr>files.hpp&gt;</div><div>#include &lt;boost/log/utilit=
y/setup/<wbr>common_attributes.hpp&gt;</div><div>#include &lt;boost/log/sou=
rces/severity_<wbr>logger.hpp&gt;</div><div>#include &lt;boost/log/sources/=
record_<wbr>ostream.hpp&gt;</div><div><br></div><div>It can include in the =
fashion similar &nbsp;Bash shell file reference&nbsp;</div><div><br></div><=
div><font color=3D"#0000ff"><i>#include &lt;boost/log/{core,trivial,<wbr>ex=
pression}.hpp&gt;</i></font></div><div><font color=3D"#0000ff"><i>#include =
&lt;boost/log/{utility/setup/{<wbr>files,common_attributes} sources/{severi=
ty_logger,<wbr>record_ostream}.hpp&gt;</i></font></div><div><br></div><div>=
It can be formatted bit more better</div><div><br></div><div>Let me know yo=
ur thoughts about this.</div><div><br></div><div>Regards</div><div>Ramaswam=
y B.A</div><div><br></div></div></blockquote></div></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_405_1066442540.1420221861594--
------=_Part_404_1245107530.1420221861594--

.


Author: sasho648 <sasho648@mail.bg>
Date: Fri, 2 Jan 2015 10:51:36 -0800 (PST)
Raw View
------=_Part_434_1195197181.1420224696730
Content-Type: multipart/alternative;
 boundary="----=_Part_435_116987029.1420224696730"

------=_Part_435_116987029.1420224696730
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I agree with you - this idea should target modules as they are the future=
=20
and when being released could deprecate file inclusion. I also believe that=
=20
including modules wouldn't use the preprocessor at all.

01 =D1=8F=D0=BD=D1=83=D0=B0=D1=80=D0=B8 2015, =D1=87=D0=B5=D1=82=D0=B2=D1=
=8A=D1=80=D1=82=D1=8A=D0=BA, 14:46:14 UTC+2, David Krauss =D0=BD=D0=B0=D0=
=BF=D0=B8=D1=81=D0=B0:
>
> You could rephrase the idea in terms of modules, which are intended to=20
> supersede headers. I don=E2=80=99t know whether the standard library is e=
xpected to=20
> map to one or several modules, though.
>

--=20

---=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

------=_Part_435_116987029.1420224696730
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I agree with you - this idea should target modules as they=
 are the future and when being released could deprecate file inclusion. I a=
lso believe that including modules wouldn't use the preprocessor at all.<br=
><br>01 =D1=8F=D0=BD=D1=83=D0=B0=D1=80=D0=B8 2015, =D1=87=D0=B5=D1=82=D0=B2=
=D1=8A=D1=80=D1=82=D1=8A=D0=BA, 14:46:14 UTC+2, David Krauss =D0=BD=D0=B0=
=D0=BF=D0=B8=D1=81=D0=B0:<blockquote class=3D"gmail_quote" style=3D"margin:=
 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div =
style=3D"word-wrap:break-word"><div>You could rephrase the idea in terms of=
 modules, which are intended to supersede headers. I don=E2=80=99t know whe=
ther the standard library is expected to map to one or several modules, tho=
ugh.</div></div></blockquote></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_435_116987029.1420224696730--
------=_Part_434_1195197181.1420224696730--

.


Author: Sean Middleditch <sean.middleditch@gmail.com>
Date: Fri, 2 Jan 2015 17:56:22 -0800 (PST)
Raw View
------=_Part_3738_259087663.1420250182439
Content-Type: multipart/alternative;
 boundary="----=_Part_3739_1536999572.1420250182439"

------=_Part_3739_1536999572.1420250182439
Content-Type: text/plain; charset=UTF-8

I dunno, personally I think the multiple line version is easier to read,
even among the other alternatives presented in this thread. I see combining
these lines as more terse but not more concise.

With a competent editor, you're not typing these in anyway. Shaving
keystrokes is only worth it if it makes the code easier to read, not just
type. Shaving keystrokes in a way that makes it harder to read is a
regression.

On Thursday, January 1, 2015 2:30:13 AM UTC-8, Ramaswamy B.A wrote:
>
> Hi All,
>
> While including multiple files we follow the syntax like this (both C and
> C++)
>
> #include <iostream>
> #include <memory>
> #include <thread>
> #include <chrono>
> #include <mutex>
>
> Instead of doing like above, it is convenient if we can include multiple
>  files in single line
>
> *#include <iostream, memory, thread, chrono, mutex>*
> *OR *
> *#include <[iostream, memory, thread, chrono, mutex]>*
>
> It makes some time very useful to include the long path inclusion files
>
> For examples
> We normally include the boost log  files like below
>
> #include <boost/log/core.hpp>
> #include <boost/log/trivial.hpp>
> #include <boost/log/expression.hpp>
> #include <boost/log/sinks/text_file_backend.hpp>
> #include <boost/log/utility/setup/files.hpp>
> #include <boost/log/utility/setup/common_attributes.hpp>
> #include <boost/log/sources/severity_logger.hpp>
> #include <boost/log/sources/record_ostream.hpp>
>
> It can include in the fashion similar  Bash shell file reference
>
> *#include <boost/log/{core,trivial,expression}.hpp>*
> *#include <boost/log/{utility/setup/{files,common_attributes}
> sources/{severity_logger,record_ostream}.hpp>*
>
> It can be formatted bit more better
>
> Let me know your thoughts about this.
>
> Regards
> Ramaswamy B.A
>
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_3739_1536999572.1420250182439
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I dunno, personally I think the multiple line version is e=
asier to read, even among the other alternatives presented in this thread. =
I see combining these lines as more terse but not more concise.<div><br></d=
iv><div>With a competent editor, you're not typing these in anyway. Shaving=
 keystrokes is only worth it if it makes the code easier to read, not just =
type. Shaving keystrokes in a way that makes it harder to read is a regress=
ion.<br><div><div><br>On Thursday, January 1, 2015 2:30:13 AM UTC-8, Ramasw=
amy B.A wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-l=
eft: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr"=
>Hi All,<div><br></div><div>While including multiple files we follow the sy=
ntax like this (both C and C++)</div><div><br></div><div>#include &lt;iostr=
eam&gt;</div><div>#include &lt;memory&gt;</div><div>#include &lt;thread&gt;=
</div><div>#include &lt;chrono&gt;</div><div>#include &lt;mutex&gt;</div><d=
iv><br></div><div>Instead of doing like above, it is convenient if we can i=
nclude multiple &nbsp;files in single line</div><div><br></div><div><i><fon=
t color=3D"#0000ff">#include &lt;iostream, memory, thread, chrono, mutex&gt=
;</font></i></div><div><i><font color=3D"#0000ff">OR&nbsp;</font></i></div>=
<div><i><font color=3D"#0000ff">#include &lt;[iostream, memory, thread, chr=
ono, mutex]&gt;</font></i><br></div><div><br></div><div>It makes some time =
very useful to include the long path inclusion files</div><div><br></div><d=
iv>For examples&nbsp;</div><div>We normally include the boost log &nbsp;fil=
es like below&nbsp;</div><div><br></div><div>#include &lt;boost/log/core.hp=
p&gt;</div><div>#include &lt;boost/log/trivial.hpp&gt;</div><div>#include &=
lt;boost/log/expression.hpp&gt;</div><div>#include &lt;boost/log/sinks/text=
_file_<wbr>backend.hpp&gt;</div><div>#include &lt;boost/log/utility/setup/<=
wbr>files.hpp&gt;</div><div>#include &lt;boost/log/utility/setup/<wbr>commo=
n_attributes.hpp&gt;</div><div>#include &lt;boost/log/sources/severity_<wbr=
>logger.hpp&gt;</div><div>#include &lt;boost/log/sources/record_<wbr>ostrea=
m.hpp&gt;</div><div><br></div><div>It can include in the fashion similar &n=
bsp;Bash shell file reference&nbsp;</div><div><br></div><div><font color=3D=
"#0000ff"><i>#include &lt;boost/log/{core,trivial,<wbr>expression}.hpp&gt;<=
/i></font></div><div><font color=3D"#0000ff"><i>#include &lt;boost/log/{uti=
lity/setup/{<wbr>files,common_attributes} sources/{severity_logger,<wbr>rec=
ord_ostream}.hpp&gt;</i></font></div><div><br></div><div>It can be formatte=
d bit more better</div><div><br></div><div>Let me know your thoughts about =
this.</div><div><br></div><div>Regards</div><div>Ramaswamy B.A</div><div><b=
r></div></div></blockquote></div></div></div></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_3739_1536999572.1420250182439--
------=_Part_3738_259087663.1420250182439--

.


Author: Jonathan Coe <jonathanbcoe@gmail.com>
Date: Sat, 3 Jan 2015 07:55:02 +0000
Raw View
--Apple-Mail-EB278E10-C2BF-4681-A812-C2F3EA032535
Content-Type: text/plain; charset=UTF-8

+1



> On 3 Jan 2015, at 01:56, Sean Middleditch <sean.middleditch@gmail.com> wrote:
>
> I dunno, personally I think the multiple line version is easier to read, even among the other alternatives presented in this thread. I see combining these lines as more terse but not more concise.
>
> With a competent editor, you're not typing these in anyway. Shaving keystrokes is only worth it if it makes the code easier to read, not just type. Shaving keystrokes in a way that makes it harder to read is a regression.
>
>> On Thursday, January 1, 2015 2:30:13 AM UTC-8, Ramaswamy B.A wrote:
>> Hi All,
>>
>> While including multiple files we follow the syntax like this (both C and C++)
>>
>> #include <iostream>
>> #include <memory>
>> #include <thread>
>> #include <chrono>
>> #include <mutex>
>>
>> Instead of doing like above, it is convenient if we can include multiple  files in single line
>>
>> #include <iostream, memory, thread, chrono, mutex>
>> OR
>> #include <[iostream, memory, thread, chrono, mutex]>
>>
>> It makes some time very useful to include the long path inclusion files
>>
>> For examples
>> We normally include the boost log  files like below
>>
>> #include <boost/log/core.hpp>
>> #include <boost/log/trivial.hpp>
>> #include <boost/log/expression.hpp>
>> #include <boost/log/sinks/text_file_backend.hpp>
>> #include <boost/log/utility/setup/files.hpp>
>> #include <boost/log/utility/setup/common_attributes.hpp>
>> #include <boost/log/sources/severity_logger.hpp>
>> #include <boost/log/sources/record_ostream.hpp>
>>
>> It can include in the fashion similar  Bash shell file reference
>>
>> #include <boost/log/{core,trivial,expression}.hpp>
>> #include <boost/log/{utility/setup/{files,common_attributes} sources/{severity_logger,record_ostream}.hpp>
>>
>> It can be formatted bit more better
>>
>> Let me know your thoughts about this.
>>
>> Regards
>> Ramaswamy B.A
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

--Apple-Mail-EB278E10-C2BF-4681-A812-C2F3EA032535
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=
=3Dutf-8"></head><body dir=3D"auto"><div>+1<br><br><br></div><div><br>On 3 =
Jan 2015, at 01:56, Sean Middleditch &lt;<a href=3D"mailto:sean.middleditch=
@gmail.com">sean.middleditch@gmail.com</a>&gt; wrote:<br><br></div><blockqu=
ote type=3D"cite"><div><div dir=3D"ltr">I dunno, personally I think the mul=
tiple line version is easier to read, even among the other alternatives pre=
sented in this thread. I see combining these lines as more terse but not mo=
re concise.<div><br></div><div>With a competent editor, you're not typing t=
hese in anyway. Shaving keystrokes is only worth it if it makes the code ea=
sier to read, not just type. Shaving keystrokes in a way that makes it hard=
er to read is a regression.<br><div><div><br>On Thursday, January 1, 2015 2=
:30:13 AM UTC-8, Ramaswamy B.A wrote:<blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left:=
 1ex;"><div dir=3D"ltr">Hi All,<div><br></div><div>While including multiple=
 files we follow the syntax like this (both C and C++)</div><div><br></div>=
<div>#include &lt;iostream&gt;</div><div>#include &lt;memory&gt;</div><div>=
#include &lt;thread&gt;</div><div>#include &lt;chrono&gt;</div><div>#includ=
e &lt;mutex&gt;</div><div><br></div><div>Instead of doing like above, it is=
 convenient if we can include multiple &nbsp;files in single line</div><div=
><br></div><div><i><font color=3D"#0000ff">#include &lt;iostream, memory, t=
hread, chrono, mutex&gt;</font></i></div><div><i><font color=3D"#0000ff">OR=
&nbsp;</font></i></div><div><i><font color=3D"#0000ff">#include &lt;[iostre=
am, memory, thread, chrono, mutex]&gt;</font></i><br></div><div><br></div><=
div>It makes some time very useful to include the long path inclusion files=
</div><div><br></div><div>For examples&nbsp;</div><div>We normally include =
the boost log &nbsp;files like below&nbsp;</div><div><br></div><div>#includ=
e &lt;boost/log/core.hpp&gt;</div><div>#include &lt;boost/log/trivial.hpp&g=
t;</div><div>#include &lt;boost/log/expression.hpp&gt;</div><div>#include &=
lt;boost/log/sinks/text_file_<wbr>backend.hpp&gt;</div><div>#include &lt;bo=
ost/log/utility/setup/<wbr>files.hpp&gt;</div><div>#include &lt;boost/log/u=
tility/setup/<wbr>common_attributes.hpp&gt;</div><div>#include &lt;boost/lo=
g/sources/severity_<wbr>logger.hpp&gt;</div><div>#include &lt;boost/log/sou=
rces/record_<wbr>ostream.hpp&gt;</div><div><br></div><div>It can include in=
 the fashion similar &nbsp;Bash shell file reference&nbsp;</div><div><br></=
div><div><font color=3D"#0000ff"><i>#include &lt;boost/log/{core,trivial,<w=
br>expression}.hpp&gt;</i></font></div><div><font color=3D"#0000ff"><i>#inc=
lude &lt;boost/log/{utility/setup/{<wbr>files,common_attributes} sources/{s=
everity_logger,<wbr>record_ostream}.hpp&gt;</i></font></div><div><br></div>=
<div>It can be formatted bit more better</div><div><br></div><div>Let me kn=
ow your thoughts about this.</div><div><br></div><div>Regards</div><div>Ram=
aswamy B.A</div><div><br></div></div></blockquote></div></div></div></div>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br>
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br>
</div></blockquote></body></html>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--Apple-Mail-EB278E10-C2BF-4681-A812-C2F3EA032535--

.


Author: "Ramaswamy B.A" <ramaswamy.be@gmail.com>
Date: Sat, 3 Jan 2015 02:15:34 -0800 (PST)
Raw View
------=_Part_3356_1437140950.1420280134377
Content-Type: multipart/alternative;
 boundary="----=_Part_3357_1279368841.1420280134377"

------=_Part_3357_1279368841.1420280134377
Content-Type: text/plain; charset=UTF-8

It is just my  idea. I am not part of the any preprocessor/compiler
development team. So can't implement and test this one.

About the code readability,  having the grouped inclusion( or files from
the same library) has better readability.(While reading the code,  we don't
check every file names inclusion. We just check from which library they
have included. So grouped inclusion make it easy to read0

The variadic macros are exist with  current preprocessor, but with this
 not possible cover my requirements
Like parsing the file name and expand to  complete file, and similar to
 Bash shell file notation:
Eg: File inclusion like  :
/usr/local/Cellar/boost/1.55.0_2/include/boost/{regex,python,ratio}.hpp

So preprocessor has to be modified.

If many people agreed we can try to implement  and test preprocessor.


Is any body in the group from GCC Development team?
(So can take help to get gcc preprocessor code and modify and test.)

On Thursday, January 1, 2015 6:30:13 PM UTC+8, Ramaswamy B.A wrote:
>
> Hi All,
>
> While including multiple files we follow the syntax like this (both C and
> C++)
>
> #include <iostream>
> #include <memory>
> #include <thread>
> #include <chrono>
> #include <mutex>
>
> Instead of doing like above, it is convenient if we can include multiple
>  files in single line
>
> *#include <iostream, memory, thread, chrono, mutex>*
> *OR *
> *#include <[iostream, memory, thread, chrono, mutex]>*
>
> It makes some time very useful to include the long path inclusion files
>
> For examples
> We normally include the boost log  files like below
>
> #include <boost/log/core.hpp>
> #include <boost/log/trivial.hpp>
> #include <boost/log/expression.hpp>
> #include <boost/log/sinks/text_file_backend.hpp>
> #include <boost/log/utility/setup/files.hpp>
> #include <boost/log/utility/setup/common_attributes.hpp>
> #include <boost/log/sources/severity_logger.hpp>
> #include <boost/log/sources/record_ostream.hpp>
>
> It can include in the fashion similar  Bash shell file reference
>
> *#include <boost/log/{core,trivial,expression}.hpp>*
> *#include <boost/log/{utility/setup/{files,common_attributes}
> sources/{severity_logger,record_ostream}.hpp>*
>
> It can be formatted bit more better
>
> Let me know your thoughts about this.
>
> Regards
> Ramaswamy B.A
>
>

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

------=_Part_3357_1279368841.1420280134377
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>It is just my &nbsp;idea. I am not part of the any pr=
eprocessor/compiler development team. So can't implement and test this one.=
</div><div><br></div><div>About the code readability, &nbsp;having the grou=
ped inclusion( or files from the same library) has better readability.(Whil=
e reading the code, &nbsp;we don't check every file names inclusion. We jus=
t check from which library they have included. So grouped inclusion make it=
 easy to read0</div><div><br></div><div>The variadic macros are exist with =
&nbsp;current preprocessor, but with this &nbsp;not possible cover my requi=
rements</div><div>Like parsing the file name and expand to &nbsp;complete f=
ile, and similar to &nbsp;Bash shell file notation:&nbsp;</div><div>Eg: Fil=
e inclusion like &nbsp;:&nbsp;<span style=3D"line-height: 18px;">/usr/local=
/Cellar/boost/1.55.0_2/include/boost/{regex,python,ratio}.hpp</span></div>







<div><br></div><div>So preprocessor has to be modified.</div><div><br></div=
><div>If many people agreed we can try to implement &nbsp;and test preproce=
ssor.</div><div><br></div><div><br></div><div>Is any body in the group from=
 GCC Development team?</div><div>(So can take help to get gcc preprocessor =
code and modify and test.)</div><br>On Thursday, January 1, 2015 6:30:13 PM=
 UTC+8, Ramaswamy B.A wrote:<blockquote class=3D"gmail_quote" style=3D"marg=
in: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><d=
iv dir=3D"ltr">Hi All,<div><br></div><div>While including multiple files we=
 follow the syntax like this (both C and C++)</div><div><br></div><div>#inc=
lude &lt;iostream&gt;</div><div>#include &lt;memory&gt;</div><div>#include =
&lt;thread&gt;</div><div>#include &lt;chrono&gt;</div><div>#include &lt;mut=
ex&gt;</div><div><br></div><div>Instead of doing like above, it is convenie=
nt if we can include multiple &nbsp;files in single line</div><div><br></di=
v><div><i><font color=3D"#0000ff">#include &lt;iostream, memory, thread, ch=
rono, mutex&gt;</font></i></div><div><i><font color=3D"#0000ff">OR&nbsp;</f=
ont></i></div><div><i><font color=3D"#0000ff">#include &lt;[iostream, memor=
y, thread, chrono, mutex]&gt;</font></i><br></div><div><br></div><div>It ma=
kes some time very useful to include the long path inclusion files</div><di=
v><br></div><div>For examples&nbsp;</div><div>We normally include the boost=
 log &nbsp;files like below&nbsp;</div><div><br></div><div>#include &lt;boo=
st/log/core.hpp&gt;</div><div>#include &lt;boost/log/trivial.hpp&gt;</div><=
div>#include &lt;boost/log/expression.hpp&gt;</div><div>#include &lt;boost/=
log/sinks/text_file_<wbr>backend.hpp&gt;</div><div>#include &lt;boost/log/u=
tility/setup/<wbr>files.hpp&gt;</div><div>#include &lt;boost/log/utility/se=
tup/<wbr>common_attributes.hpp&gt;</div><div>#include &lt;boost/log/sources=
/severity_<wbr>logger.hpp&gt;</div><div>#include &lt;boost/log/sources/reco=
rd_<wbr>ostream.hpp&gt;</div><div><br></div><div>It can include in the fash=
ion similar &nbsp;Bash shell file reference&nbsp;</div><div><br></div><div>=
<font color=3D"#0000ff"><i>#include &lt;boost/log/{core,trivial,<wbr>expres=
sion}.hpp&gt;</i></font></div><div><font color=3D"#0000ff"><i>#include &lt;=
boost/log/{utility/setup/{<wbr>files,common_attributes} sources/{severity_l=
ogger,<wbr>record_ostream}.hpp&gt;</i></font></div><div><br></div><div>It c=
an be formatted bit more better</div><div><br></div><div>Let me know your t=
houghts about this.</div><div><br></div><div>Regards</div><div>Ramaswamy B.=
A</div><div><br></div></div></blockquote></div>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

------=_Part_3357_1279368841.1420280134377--
------=_Part_3356_1437140950.1420280134377--

.


Author: David Krauss <potswa@gmail.com>
Date: Sun, 4 Jan 2015 12:36:26 +0800
Raw View
--Apple-Mail=_27372630-60D5-4E6B-AB5D-45E61773E0AD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8


> On 2015=E2=80=9301=E2=80=9303, at 6:15 PM, Ramaswamy B.A <ramaswamy.be@gm=
ail.com> wrote:
>=20
> It is just my  idea. I am not part of the any preprocessor/compiler devel=
opment team. So can't implement and test this one.

You can submit a GCC or Clang patch without joining any team. For GCC, you=
=E2=80=99ll need either a legal registration with GNU or a registered spons=
or.

> The variadic macros are exist with  current preprocessor, but with this  =
not possible cover my requirements
> Like parsing the file name and expand to  complete file, and similar to  =
Bash shell file notation:=20
> Eg: File inclusion like  : /usr/local/Cellar/boost/1.55.0_2/include/boost=
/{regex,python,ratio}.hpp

Variadic macros and preprocessor metaprocessing can already support somethi=
ng like

#define INCLUDE_BOOST( LIBS ) (/usr/local/Cellar/boost/1.55.0_2/include/boo=
st/) (LIBS) (.hpp)
#define INCLUDE_PATTERN INCLUDE_BOOST( regex,python,ratio )
#include "include_multiple.h"

But, why are you using a global path??

> So preprocessor has to be modified.
>=20
> If many people agreed we can try to implement  and test preprocessor.

Open source works a lot better when someone takes more individual initiativ=
e.

> Is any body in the group from GCC Development team?
> (So can take help to get gcc preprocessor code and modify and test.)


You can try doing it yourself, and ask on the GCC mailing lists if you get =
stuck and need help. This is not the appropriate forum for GCC development =
discussion.

--=20

---=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposa=
ls/.

--Apple-Mail=_27372630-60D5-4E6B-AB5D-45E61773E0AD
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html charset=
=3Dutf-8"></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: s=
pace; -webkit-line-break: after-white-space;" class=3D""><br class=3D""><di=
v><blockquote type=3D"cite" class=3D""><div class=3D"">On 2015=E2=80=9301=
=E2=80=9303, at 6:15 PM, Ramaswamy B.A &lt;<a href=3D"mailto:ramaswamy.be@g=
mail.com" class=3D"">ramaswamy.be@gmail.com</a>&gt; wrote:</div><br class=
=3D"Apple-interchange-newline"><div class=3D""><div style=3D"font-family: H=
elvetica; font-size: 12px; font-style: normal; font-variant: normal; font-w=
eight: normal; letter-spacing: normal; line-height: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: nor=
mal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" clas=
s=3D"">It is just my &nbsp;idea. I am not part of the any preprocessor/comp=
iler development team. So can't implement and test this one.</div></div></b=
lockquote></div><br class=3D""><div class=3D"">You can submit a GCC or Clan=
g patch without joining any team. For GCC, you=E2=80=99ll need either a leg=
al registration with GNU or a registered sponsor.</div><div class=3D""><br =
class=3D""></div><div class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div class=3D"">The variadic macros are exist with &nbsp;current=
 preprocessor, but with this &nbsp;not possible cover my requirements</div>=
<div class=3D"">Like parsing the file name and expand to &nbsp;complete fil=
e, and similar to &nbsp;Bash shell file notation:&nbsp;</div><div class=3D"=
">Eg: File inclusion like &nbsp;:&nbsp;<span class=3D"" style=3D"line-heigh=
t: 18px;">/usr/local/Cellar/boost/1.55.0_2/include/boost/{regex,python,rati=
o}.hpp</span></div></div></blockquote><div class=3D""><br class=3D""></div>=
<div class=3D"">Variadic macros and preprocessor metaprocessing can already=
 support something like</div><div class=3D""><br class=3D""></div><div clas=
s=3D""><span style=3D"font-family: Courier;" class=3D"">#define INCLUDE_BOO=
ST( LIBS )&nbsp;</span><span style=3D"font-family: Courier;" class=3D"">(/u=
sr/local/Cellar/boost/1.55.0_2/include/boost/) (LIBS) (.hpp)</span></div><d=
iv class=3D""><font face=3D"Courier" class=3D"">#define INCLUDE_PATTERN INC=
LUDE_BOOST( regex,python,ratio )</font></div><div class=3D""><span style=3D=
"font-family: Courier;" class=3D"">#include&nbsp;"include_multiple.h"</span=
></div><div class=3D""><br class=3D""></div><div class=3D"">But, why are yo=
u using a global path??</div><br class=3D""><blockquote type=3D"cite" class=
=3D""><div class=3D""><div class=3D"">So preprocessor has to be modified.</=
div><div class=3D""><br class=3D""></div><div class=3D"">If many people agr=
eed we can try to implement &nbsp;and test preprocessor.</div></div></block=
quote><div class=3D""><br class=3D""></div><div class=3D"">Open source work=
s a lot better when someone takes more individual initiative.</div><br clas=
s=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">Is any body in =
the group from GCC Development team?</div><div class=3D"">(So can take help=
 to get gcc preprocessor code and modify and test.)</div></blockquote></div=
><div class=3D""><div class=3D""><div class=3D""><br class=3D""></div></div=
></div><div class=3D"">You can try doing it yourself, and ask on the GCC ma=
iling lists if you get stuck and need help. This is not the appropriate for=
um for GCC development discussion.</div></body></html>

<p></p>

-- <br />
<br />
--- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
Visit this group at <a href=3D"http://groups.google.com/a/isocpp.org/group/=
std-proposals/">http://groups.google.com/a/isocpp.org/group/std-proposals/<=
/a>.<br />

--Apple-Mail=_27372630-60D5-4E6B-AB5D-45E61773E0AD--

.


Author: Sean Middleditch <sean@middleditch.us>
Date: Mon, 5 Jan 2015 10:28:31 -0800
Raw View
On Sat, Jan 3, 2015 at 2:15 AM, Ramaswamy B.A <ramaswamy.be@gmail.com> wrote:
> About the code readability,  having the grouped inclusion( or files from the
> same library) has better readability.(While reading the code,  we don't
> check every file names inclusion. We just check from which library they have
> included. So grouped inclusion make it easy to read0

I don't really see it that way. Sure, the idea has merit in that it
_could_ make things easier to read, but at least what's presented here
so far does the opposite. Foo/{bar,baz}/blah.h is very easy to misread
as being a single file. It's harder to maintain, as users will be
tempted to write fancy (and potentially very obtuse) patterns for what
should be a simple path. It also means that all of our tools need
updating to understand the syntax, highlight so it stands out, and
work with all the refactoring and analysis that people use.

An approach more like many other languages that is based on modules
could potentially be far better. Consider Python's syntax as one
example, modified a little for C++:

    from std.containers import vector, map, list;

Much more clear. I'm not personally convinced that it's really any
kind of significant win over just writing out all three lines, though.
The above is still slightly less clear and only marginally more
convenient than just writing out the import statements directly.

Also keep in mind that the include feature is part of the
preprocessor, which C++ tends to keep very close to C; you'd probably
need to go talk to the C ISO committee about changes here and get them
to accept it before it has any chance of making its way into C++.
Preprocessor changes tend to be eschewed in C++ land for changes that
integrate better with the language as a whole, too. Investigating the
module import syntax and improvements, conveniences, and readability
improvements you can suggest there have both more chance of being
taken seriously by th e C++ committee and are a better approach for
the long-term outlook of C++ anyway (the idea is slowly get rid of the
need for preprocessor includes, not make them more complicated).

> The variadic macros are exist with  current preprocessor, but with this  not
> possible cover my requirements
> Like parsing the file name and expand to  complete file, and similar to
> Bash shell file notation:
> Eg: File inclusion like  :
> /usr/local/Cellar/boost/1.55.0_2/include/boost/{regex,python,ratio}.hpp
>
> So preprocessor has to be modified.
>
> If many people agreed we can try to implement  and test preprocessor.
>
>
> Is any body in the group from GCC Development team?
> (So can take help to get gcc preprocessor code and modify and test.)
>
> On Thursday, January 1, 2015 6:30:13 PM UTC+8, Ramaswamy B.A wrote:
>>
>> Hi All,
>>
>> While including multiple files we follow the syntax like this (both C and
>> C++)
>>
>> #include <iostream>
>> #include <memory>
>> #include <thread>
>> #include <chrono>
>> #include <mutex>
>>
>> Instead of doing like above, it is convenient if we can include multiple
>> files in single line
>>
>> #include <iostream, memory, thread, chrono, mutex>
>> OR
>> #include <[iostream, memory, thread, chrono, mutex]>
>>
>> It makes some time very useful to include the long path inclusion files
>>
>> For examples
>> We normally include the boost log  files like below
>>
>> #include <boost/log/core.hpp>
>> #include <boost/log/trivial.hpp>
>> #include <boost/log/expression.hpp>
>> #include <boost/log/sinks/text_file_backend.hpp>
>> #include <boost/log/utility/setup/files.hpp>
>> #include <boost/log/utility/setup/common_attributes.hpp>
>> #include <boost/log/sources/severity_logger.hpp>
>> #include <boost/log/sources/record_ostream.hpp>
>>
>> It can include in the fashion similar  Bash shell file reference
>>
>> #include <boost/log/{core,trivial,expression}.hpp>
>> #include <boost/log/{utility/setup/{files,common_attributes}
>> sources/{severity_logger,record_ostream}.hpp>
>>
>> It can be formatted bit more better
>>
>> Let me know your thoughts about this.
>>
>> Regards
>> Ramaswamy B.A
>>
> --
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/a/isocpp.org/d/topic/std-proposals/FPcrUvHbqwM/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> Visit this group at
> http://groups.google.com/a/isocpp.org/group/std-proposals/.



--
Sean Middleditch
http://seanmiddleditch.com

--

---
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

.