On Mon, May 31, 2010 at 12:59 PM, Robert Dewar <de...@adacore.com> wrote:
> 徐持恒 wrote:
>>
>> On Mon, May 31, 2010 at 6:41 PM, Robert Dewar <de...@adacore.com> wrote:
>>
>>> It's a pity to exclude namespaces, the advantage of breaking the
>>> single-big-namespace model are evident.
>>
>> Yes, the advantage of namespace is obvious.
>>
>> But, I think namespace is just a syntax sugar. You can name your
>> variables, functions, classes properly  to  "avoid" it.
>
> All of OO is just syntactic sugar :-)
> You can mimic anything in C, the point is that it obscures the
> code, this kind of naming obscures the code, so it is better
> avoided.

Indeed.  Like the funny names you start to invent when you
have wrappers that allow different kind of argument types for
a common worker.  Like building a points-to constraint in
tree-ssa-structalias.c, those have two args which technically
can be either of type int, of type varinfo_t or of type
struct constraint_expr ...  The most convenient variant
would be auto-conversion to struct constraint_expr, but even
an explicit constructor call would be ok.  Or simply
use function overloading for a sub-set of all argument type
combinations.

The same applies to functions operating on HWI vs.
double-int vs. tree integer constants vs. RTL integer constants.
Where at that point the question is whether we want to
allow operator overloading.  (No would be my answer)

Richard.

Reply via email to