On Wed, Jun 2, 2010 at 9:55 AM, 徐持恒 <chiheng...@gmail.com> wrote:
> On Wed, Jun 2, 2010 at 8:38 AM, DJ Delorie <d...@redhat.com> wrote:
>>
>> "Hargett, Matt" <matt.harg...@bluecoat.com> writes:
>>>> As noted earlier I think we do want to use some STL classes.
>>>
>>> I agree with Mark's earlier declaration that it is relatively
>>> straight-forward, low-hanging fruit to replace VEC_*
>>
>> I do not object to simple and obvious uses of STL to replace equivalent
>> functionality, but I've seen code that layers STL over STL over STL to
>> the point where the code is very difficult to understand.  Hence, my
>> recommendation to avoid STL *at first*.  It teaches caution against
>> over-abstracting and arbitrary complexity.
>>
>
> STL is good, but may surplus what GCC really needs, and will introduce
> many complex, "uncontrollable" C++ features.
>
>
> Personally, I think what GCC need most is  an simple, generic, one
> layer containers of pointers to objects,  with their iterators.
> Instead of containers of arbitrary types.  That means the type
> parameters of the standard templates is restricted to pointer to
> objects.
>
>
> If you can't refrain from using STL and don't like the mess it may
> introduce, you can derive classes from instantiated standard templates
> with pointer as type parameters, and use the derived, template-free
> classes in rest of your code.
>

The complexity of compiler determined that , in compiler, Java style
C/C++ code may be unavoidable.

In Java language, there are only two kinks of types, primitive types
and reference types.  When translated to C/C++, reference type are
converted to pointer(to object) types. So, In a C/C++ program, if you
only use primitive types and pointer(to object) types,  I will call it
Java style C/C++ code. You can use Java language to write arbitrary
complex programs ?  It may be true you can use Java style C/C++ code
to write compiler, with some garbage collection mechanism, of course.

But C/C++ may have an another advantage, it can use ADT(Abstract Data
Type) to extend its set of "primitive type", e.g., string.




-- 
徐持恒(Chiheng Xu)
Wuhan,China

Reply via email to