[cxx-conversion] Convert vec.[ch] to C++ [1/3] (issue6233044)
Gabriel Dos Reis
gdr@integrable-solutions.net
Fri May 25 18:35:00 GMT 2012
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
More information about the Gcc-patches
mailing list