Re: [eigen] ideas about the corner types

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]




On Fri, Feb 5, 2010 at 11:43 AM, Thomas Capricelli <orzel@xxxxxxxxxxxxxxx> wrote:


Something i dont understand: why do we need to use a trick to make a compile-time parameter to look like a runtime one ?
Why not (as is done in other parts of eigen) do corner<TopLeft>(3,3) and makes this explicit ?

sure, ideally I would prefer your suggestion but c++ is such that the trick has the advantage of not needing the template prefix (in template code):

m.corner(TopLeft,3,3)

vs

m.template corner<TopLeft>(3,3)

gael.
 

(The trick could still be used in the eigen2 compatibility stuff to keep the old api)
In data venerdì 05 febbraio 2010 10:45:21, Benoit Jacob ha scritto:
> >> Currently matrix.corner(TopLeft,3,3) takes TopLeft as a runtime
> >> parameter. This is based around the assumption that the compiler
> >> resolves this at compile time. In practice that seems to work although
> >> I only checked GCC. Here's an idea to resolve this at runtime: let
> >> TopLeft be an object of type CornerType<TopLeft_t>, etc... taking a
> >> common template CornerType type allows to write the function only
> >> once, yet have a guarantee that that stuff resolves at compile time.
> >
> > Sounds good, and that does not change the API right ?
>
> No API change, assuming that nobody was perverse enough to actually
> pass a runtime variable, whose value actually isn't known at compile
> time, as the corner type.




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/