From: Hurd, Matthew (hurdm_at_[hidden])
Date: 2004-04-01 18:47:07
> On Behalf Of David Abrahams
> > Rob Stewart <stewart_at_[hidden]> writes:
> I think your definitions are mostly on target, but I think where you
> go wrong is that traits/policies has less to do with how a template
> is defined than how it's used.
Can a method call be part of a trait class? I don't think traits should
have anything to do with enacting behaviour (they may describe it).
If it is not clear and I see a method I think of it as policy-like. A
collection of types and static constants and I think of it as
I think it gets confusing with the overloading of the English word
policy. A policy on how to do something could be passed by value as a
polymorphic object or as a simple Boolean flag for that matter... which
is not the common intended meaning that MCD brought into common focus.
I'll try to add something...
Traits are used to get information at compile time. Policies are used
to modify behaviour. Traits could be used by a client to modify
behaviour which makes them feel like a policy class, but they aren't in
what we normally think of as a policy.
If a trait is used to direct the modification of behaviour, is it a
policy from the client classes point of view I guess... which points to
the terminology confusion.
Policies can be chained, multiply inherited from or just be ordinary
template classes with static methods, maybe such different styles should
have different names... a chain aspect, a base aspect (MCD-like), a
You could then say aspects and traits could be used as policies
A policy is then something that maybe used to modify behaviour. A trait
carries information for use such as for behaviour modification. An
aspect extends the definition of trait to also encapsulate behaviour.
An aspect and a trait may be used as a policy.
Does that work?
It would be nice if something new like "aspect class" or some such could
be defined and used commonly to avoid the mess, but I suspect it is too
Susquehanna Pacific P/L
IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk