
Tobias Schwinger <tschwinger@neoscientists.org> writes:
David Abrahams wrote:
Tobias Schwinger <tschwinger@neoscientists.org> writes:
- use at_c for every element
Not at all; just use iterators dereference and increment them. boost/python/detail/caller.hpp uses this pattern.
Well, that's nicer in case 'at' has non-constant complexity. Still, I find this "surprisingly brutal".
I don't see why. How would you fill up members of a struct with successive elements of a sequence? x.m1 = *i; ++i; x.m2 = *i; ++i x.m3 = *i; ... Yes, we have shorthands like *++i, but it amounts to the same thing.
Can you give me a vague idea of this technique's performance (seconds/functions), if recognizable at all ?
I have no data other than that it's "fast enough."
This is going to be a job for the PP library, no matter what you do.
Oh! Use it already. My concern was about the preprocessed code (becomes huge, causes numerous template instantiations when used and in some way obscures the preprocessed headers).
Sounds pretty FUDdy, duddy.
However, if it works for Boost.Python I'll call it "common practice" and just use it ;-).
Hope I helped. -- Dave Abrahams Boost Consulting www.boost-consulting.com