This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Preprocessorised tr1::tuple


On Feb 25, 2005, at 6:27 PM, Benjamin Kosnik wrote:
bind and result_of will also need this preprocessor magic.  I think
that's it for TR1...

I would rather use something like boost::spirit than write our own bit of magic for libstdc++.


Is this what you were implying?

I just realized how unclear my message was... my apologies.


As far as I know, the following components of TR1 require a nontrivial amount of code repetition that can be implemented with preprocessor metaprogramming, some kind of C++ code generator, or brute force:

	1) tuple
	2) reference_wrapper
	3) function
	4) mem_fn
	5) result_of
	6) bind
	7) (maybe) parts of type traits, but I think we can avoid it

I think pulling in something like the Boost.Preprocessor library would be overkill for this... a small preprocessor library like Chris has done or just enumerating the cases as I've done for function and mem_fn should be sufficient. The only parts of that list that we need to implement are reference_wrapper, result_of, and bind: the former two can use the same macros used by function and mem_fn but the latter might require something more sophisticated.

*Glances upward, sighs* Maybe some day variadic templates will save us from all this.

Doug


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]