Hello
I have some questions for you: 1. Why are you so interested in the value of "typeid.name()"?
I'm not particulary interested in typeid::name() as an end result.
As I said in the letter, I have real task at hand, and condensed the
code so that anybody looking at it would be able to get to the point quickly.
I used typeid()::name() here as a means of demonstating the problem.
The result which is shown by typeid()::name() corresponds to the
result encountered in the real task, namely,
the next stage of processing is supposed to take place in
traits1
2. Are you sure this isn't a compiler problem? What compiler(s) have you tried this on?
Borland Builder C++ 5. Unfortunately, it's the only one to which I have access now. It could well be a compiler problem. Unless there are some rules which I don't understand. If it is a compiler problem perhaps someone knows of a workaround. I have tried various approaches to no avail. Craig Hicks Noel Yap wrote:
--- hicks
mailto:hicks@kgk.co.jp wrote: Query regarding the use/limitiations of traits in metaprogramming
I am trying to use traits pattern to assist in metaprogramming. I have the following problem.
A traits class "trait" defers a decision to another traits class "trait1" depending on the result of a third traits class "traita". However, the compiler does not cooperate. The code below excutes but gives unexpected output (also shown).
[Note:: The code has been reduced to the minimal to demonstrate the problem. I have a real task at hand not shown here.]
template <class T> struct traita { BOOST_STATIC_CONSTANT(int, value=0); }; template <> struct traita<int> { BOOST_STATIC_CONSTANT(int, value=1); };
template
struct trait1 {}; template <class T> struct trait { BOOST_STATIC_CONSTANT(int, value=traita<T>::value); typedef trait1< ;T, value> t1; };
int main(int argc, char* argv[]) { std::cout << typeid(trait<int>::t1).name() << std::endl << trait<int>::value << std::endl ; return 0; }
output::
trait1
1 It would be nice if the first line of output were "trait1
", but it isn't. Any assistance would be greatly appreciated.
I have some questions for you: 1. Why are you so interested in the value of "typeid.name()"? 2. Are you sure this isn't a compiler problem? What compiler(s) have you tried this on?
Noel
__________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com
Info: http://www.boost.org Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl Unsubscribe: mailto:boost-users-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
[Non-text portions of this message have been removed]