
From: "Andy Little" <andy@servocomm.freeserve.co.uk>
"Andy Little" <andy@servocomm.freeserve.co.uk> wrote in message news:ci7vcj$4db$1@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