This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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: std::max: if versus ?:


On Sun, 23 Sep 2012, Gabriel Dos Reis wrote:

On Sun, Sep 23, 2012 at 10:09 AM, Marc Glisse <marc.glisse@inria.fr> wrote:

Then that may mean no std::max for vectors, at least until someone makes the
inner type and size of vectors deducible (that would make the vector version
of max more specialized than the generic one and allow overloads without
touching the generic function). Which isn't that bad, people are big enough
to write (x<y)?y:x themselves...

I do not understand why you can't have a syntax such as __vector<T,N> those extensions. If that syntax isn't there, you should consider adding it. It is a natural thing to have.

The syntax exists (though it is ugly): T __attribute__((vector_size(N))).


What doesn't work currently is that T and N are not deducible, in a template context. One possibility would be to make them deducible (sounds like duplicating a bit of template machinery). Another one would be to have a regular template class (like your vector), which would thus use the regular template machinery, but the compiler would know that it really is a vector. The second version gets away from what C does, it may not match very well with some concepts like opaque vectors, etc.

I am open to various possibilities, if you precise a bit what you have in mind.

--
Marc Glisse


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