|
Boost : |
From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2004-09-18 06:04:07
>From: "Andy Little" <andy_at_[hidden]>
> "Andy Little" <andy_at_[hidden]> wrote in message
> news:ci7vcj$4db$1_at_sea.gmane.org...
>
> Hmm Apologies. Scratch the above. I guess its not that relevent here.
>
> Anyways, after taking a look at the library(s)... it looks extremely
> impressive.
Thanks. :)
All the work I've put into it, is worth it, when one gets feedback like
this.
> Does it duplicate type_traits... maybe..
I'm not sure if I understand. None of the traits in the library(s) does the
same as the Boost type traits (that wouldn't be any point). It _uses_ those
traits (as well as other components) to build new traits, yes, so it extends
it, as you say.
In fact, that was one thing I found afterwards that didn't give proper
credit to: The Boost type traits are indispensable to the library. Without
them, there would be no library.
> but as well as extending it, it
> also provides encapsulation of commonly used concepts.
That, it does, as well as having facilities to create traits for your own
concepts. (Those same facilities that are used to create the C++ standard
and MPL traits), analoguous to the Boost Concept Check Library, as mentioned
in another posting.
I see, however, that I need to improve the docs (no surprise, there, it was
preliminary, after all), to focus more on how one might make one's own
traits. As it is, it's mostly just introduction, and a reference section. I
agree with what has come from these threads that the ability to provide
automation, or elementary building blocks, as well as making that easy to
use, is crucial for such a library.
> Once you have enable_if then you certainly need tools to work with it and
> from an initial view of the docs, many common but often hard to figure
> concepts are available here in encapsulated form. For myself I dont want
to
> know the gory details... so long as it works.
That's much of the point:
> Like It.. Like it a Lot. :-)
Thanks. :)
Now, if I can find some time to play with it, myself (eating your own dog
food, as they say). I certainly intend to do that. It was not at least about
"scratching an itch", and I ironically got lots of long, rambling error
messages from time to time when working on it, so that certainly helped to
motivate me to keep going.
I pondered whether I should "bootstrap" it - that is, use the traits in the
library for things like the unit tests. However, the unit tests take long
enough to compile as they are, and I didn't want to possibly substantially
prolong it, by adding tests to the templates there. So I just took the
"hits" that came, when something went wrong, and I got an instantiation
stack dump pages and pages long, and just prayed that it would be reasonably
easy to fix the problem. When your software development methodology is based
on prayer, and hanging good-luck charms on the monitor, something is wrong,
isn't it? ;) Yet, I think I'm not alone in this...
Unfortunately, my system clock was wrong in my first few postings, and that
also included the files in the library, making it rather impossible to
compile (the generated files would always be older than the source
files...). I've uploaded a new version where all the time stamps have been
reset to normal values. Sorry about that.
Regards,
Terje
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk