[Please do not mail me a copy of your followup] boost@lists.boost.org spake the secret code <539DD973-0901-46B0-AAA4-3B7ABB32264C@gmail.com> thusly:
ÔÚ 2013-5-2£¬ÉÏÎç3:34£¬legalize+jeeves@mail.xmission.com (Richard) ÐŽµÀ£º
I think boost.multiprecision has a good example to follow: you specify a back-end as a template argument, where the backends can be an existing library or a boost licensed implementation. The boost licensed implementation needn't be as fast or memory efficient as the existing libraries, the emphasis should be on simplest implementation that can satisfy the backend requirements of the front end library, without beeing too slow or memory intensive.
Thanks for your helpful instruction! I'll look into boost.multiprecision to see how it solve this problem. But according to your explanation, boost still need its own xml library implementation. Am I correct?
I'm sorry I wasn't clear. I was describing how boost.multiprecision does things: you can choose between several existing open source back ends, or you can select the boost backend. The boost license is more permissive with respect to commercial use than the license on GMP, for instance. It's not the only option, simply an example that's already in boost that solves the problem of how do you target multiple different libraries that have similar features. -- "The Direct3D Graphics Pipeline" free book http://tinyurl.com/d3d-pipeline The Computer Graphics Museum http://computergraphicsmuseum.org The Terminals Wiki http://terminals.classiccmp.org Legalize Adulthood! (my blog) http://legalizeadulthood.wordpress.com