|
Boost : |
From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2002-07-27 16:42:19
>From: "Peter Dimov" <pdimov_at_[hidden]>
> >From: "Terje Slettebø" <tslettebo_at_[hidden]>
>
> > This also is in agreement with what Aleksey says, that "metafunction
> class"
> > tells about its form. It's a class. I think this makes sense. Just as
> > "function object" tells about its form, it's an object. No need to make
> > "class" or "object" mean something different, depending on whether or
not
> > "meta" is used in front. That could be confusing.
>
> To tie this in with what Mat said about denoting something's role, or
> function. For "metafunction class", "metafunction" tells about its role -
> it's a metafunction (compile-time function), and "class" tells about its
> form. Kevlin Henney would love this one, with his "Function follows form"
> articles. :)
>No, this analogy isn't good, either. We are creating a new terminology from
>scratch. "Metafunction" means a class template with a nested type named
>'type.' Since we aren't calling it "metafunction class template" to reflect
>the form, the "other" form should have an abstract name as well for
>consistency reasons.
I also considered that, that "metafunction" is not called "metafunction
class template".
>"Quoted metafunction" is a "metafunction" (abstract term) that has been
>"quoted" (abstract term) in order to make it suitable for use in context
>where plain metafunctions don't work.
>> In run-time programming, it may be considered the same way, with
"function
>> object", where "function" is its... function, :) or role, and "object" is
> its form.
>
>Runtime is another false analogy, we use "function object" and "functor" to
>denote something that is an extension of the ordinary "function", i.e. a
>"function" works wherever a "function object" is expected. (A "function
>object" is an object that behaves like a function. A "metafunction class"
is
>a class, but it does not behave like a metafunction.)
Hm. Good point.
Well, I guess like you say, there's not much precedence in run-time
programming, since it's quite different, so it's more about finding a new
terminology, here.
Regards,
Terje
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk