Boost logo

Boost Users :

Subject: Re: [Boost-users] boost and std collisons in c++0x
From: Gevorg Voskanyan (v_gevorg_at_[hidden])
Date: 2009-02-06 05:55:36


Sergey Sadovnikov wrote:

[ snip]

> From the common point of view I completely agree with your opinion. But
> now we are talking about fundamental language libraries. I think it
> looks too strange if, for example, C# source code contains something
> like:
>
> System.String str = "blah-blah-blah";
> System.Console.WriteLine(str);
> //...
> System.Collections.Generic.Listsome_list = new
> System.Collections.Generic.List();
>
> :) Because standard C# file template contains at least three usings
> (System, System.Collections.Generic and System.Text)
>
> Same for Java code. I mean what for other mainstream languages
> 'using declarations' are a common practice. And if we are talking about
> beginners, in present time it is hard to explain why programmer have
> to use full-qualified ids even for standard facilities. Of course
> 'because it is avoid namespace clash' is quite good explanation. But this
> explanation looks too strange near other languages. In this case we
> could get answer like this: 'Are C++ so worst and difficult if even
> fundamental libraries are not easy-to-use and conflicts each other???'

The thing is that boost is a testbed of libraries aimed for eventual standardization. And when that standardization happens, you have some standard facilities both in std and boost namespaces. Neither C# nor Java has something similar AFAIK, that's why identifier collisions are uncommon in their 'fundamental libraries'.

Is this a problem with boost, after all? One can either
- not use boost but wait some years for the new standard or a technical report to be published and implemented and then use the libraries in question (avoiding namespace clashes), or
- use the boost libraries right away and optionally provide a feedback on them to make the future standard better, but with a clear understanding that writing using-directives for both boost and std namespaces in the same scope may cause problems in the future due to the nature of boost.

I guess such an explicit disclaimer would be handy at the top of boost documentation.

All this is just my personal point of view, of course.

Best Regards,
Gevorg

      


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net