This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [cxx-conversion] Convert vec.[ch] to C++ [1/3] (issue6233044)


On Fri, May 25, 2012 at 1:27 PM, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Diego" == Diego Novillo <dnovillo@google.com> writes:
>
> Diego> +struct GTY(()) vec_prefix
> Diego> +{
> Diego> + ?unsigned num;
> Diego> + ?unsigned alloc;
> Diego> +};
> Diego> +
> Diego> +/* Vector type, user visible. ?*/
> Diego> +template<typename T>
> Diego> +struct GTY(()) vec_t
> Diego> +{
> Diego> + ?vec_prefix prefix;
> Diego> + ?T GTY((length ("%h.prefix.num"))) vec[1];
> Diego> +};
>
> I'm curious why you didn't use inheritance here.
>
> ? ?template<typename T>
> ? ?struct GTY(()) vec_t : public vec_prefix
> ? ?{
> ? ?...
> ? ?};

Very good question.

I thought about it, and then offered myself "ah, so that vec_t<int> is still
a POD type", allowing some of the usual "C" practices, whereas
inheritance would have ruled that out as C++03 portable code.

-- Gaby


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]