On 22/07/2014 8:09 AM, Mostafa wrote:
That's what I figured, and Boost.Preprocessor could be used to take care of the variadic templates. My only concern, and maybe Michael can chime in here, would be the use of temporaries. In C++11 they could be moved, but in C++03 they may have to be copied, and I wonder if that would become costly with quince's design.
Re temporaries: no alarm bells are going off in my head. I suspect that all that's at issue are small-scale optimizations that shouldn't influence us unless measurement shows otherwise. Overall comments about replacing variadic templates with Boost.Preprocessor and decltype with Boost.TypeOf: - I experienced some difficulties with internal compiler errors, and other discrepancies between compilers. I suspect that a change to different mechanisms would produce a different set of such pragmatic problems. It may very well be that Boost.Preprocessor and Boost.TypeOf lead to *fewer* problems than variadic templates and decltype -- but the latter problems have all been worked around already. - I do like the brevity of expression in C++11. Cheers, --- Michael