<p>Op 21 okt. 2011 10:45 schreef "Jonas Gefele" <<a href="mailto:llvm.org@schrieb.de" target="_blank">llvm.org@schrieb.de</a>> het volgende:<br>
><br>
> Hi,<br>
><br>
> thank you for your reply. Personally, I would prefer switching to C++ too.<br>
> But it is unfortunately not possible :(<br>
><br>
> I have been a little imprecise when I said "compability<br>
> with real world C does not matter in my case". I meant this on a<br>
> naming/linkage level (as we can handle this in our linker).<br></p><p>Would this not be a worthy extension to be supported? I know overloaded functions can be enabled in GNU mode. It would make this a bit more portable, if not very useful for other developers...</p>
<p>Ruben<br></p>
<p>><br>
> We have a big C code base and need source level compability (to the<br>
> greatest possible extent). Introducing two new keywords "namespace" and<br>
> "using" would not hurt much. But needing to fix tons of "void-pointer<br>
> assignments" like:<br>
><br>
>   char* x = malloc(100);<br>
>   char* y = malloc(100);<br>
>   char* z = malloc(100);<br>
><br>
> would hurt a lot.<br>
><br>
><br>
> Cheers,<br>
> Jonas<br>
><br>
> > On Fri, Oct 21, 2011 at 12:33 AM, Jonas Gefele <<a href="mailto:llvm.org@schrieb.de" target="_blank">llvm.org@schrieb.de</a>><br>
> > wrote:<br>
> >> (In my local clang copy) I would like to add namespace support to C. I<br>
> >> want to use it to "tag" a couple of functions like this:<br>
> >><br>
> >> namespace tag1 {<br>
> ><br>
> >> (In my local clang copy) I need the ability to "tag" a bunch of C/C++<br>
> >> functions/globals with some "name". Something like:<br>
> ><br>
> > Would it work to just compile your C sources with a C++ compiler?<br>
> ><br>
> > /* Foo.c<br>
> >  */<br>
> ><br>
> > #ifdef __cplusplus<br>
> > extern "C" {<br>
> > #endif<br>
> ><br>
> > #include "Foo.h"  /* These function names will not be mangled */<br>
> ><br>
> > #ifdef __cplusplus<br>
> > }<br>
> > #endif<br>
> ><br>
> > #ifdef __cplusplus<br>
> > namespace tag1{<br>
> > #endif<br>
> ><br>
> > void foo( int bar )<br>
> > {<br>
> >   getDownAndBoogie();<br>
> ><br>
> >   return;<br>
> > }<br>
> ><br>
> > #ifdef __cplusplus<br>
> > } /* namespace tag1 */<br>
> > #endif<br>
> ><br>
> > Some creative macro definitions could make that look less ugly.<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > --<br>
> > Don Quixote de la Mancha<br>
> > Dulcinea Technologies Corporation<br>
> > Software of Elegance and Beauty<br>
> > <a href="http://www.dulcineatech.com" target="_blank">http://www.dulcineatech.com</a><br>
> > <a href="mailto:quixote@dulcineatech.com" target="_blank">quixote@dulcineatech.com</a><br>
> ><br>
><br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</p>