Index: doc/algorithm.qbk =================================================================== --- doc/algorithm.qbk (revision 74332) +++ doc/algorithm.qbk (working copy) @@ -68,7 +68,7 @@ [heading Synopsis] template - void copy(Seq1 const& src, Seq2& dest); + typename __result_of_copy__::type copy(Seq1 const& src, Seq2& dest); [table Parameters [[Parameter][Requirement][Description]] @@ -101,9 +101,49 @@ [endsect] +[section Metafunctions] + +[section copy] +A metafunction returning the result type of applying __copy__, which is always `void`. + +[heading Description] + +[heading Synopsis] + template + struct copy + { + typedef void type; + }; + +[table Parameters + [[Parameter] [Requirement] [Description]] + [[`Seq1`] [A model of __forward_sequence__] [Operation's argument]] + [[`Seq2`] [A model of __forward_sequence__] [Operation's argument]] +] + +[heading Expression Semantics] + __result_of_copy__::type + +[*Return type]: `void`. + +[*Semantics]: Returns the return type of __copy__ for 2 sequences of types `Seq1` and `Seq2`. +The return type is always `void`. + +[heading Complexity] +Constant. + +[heading Header] + + #include + #include + [endsect] +[endsect] +[endsect] + + [section Iteration] The iteration algorithms provide the fundamental algorithms for traversing Index: doc/fusion.qbk =================================================================== --- doc/fusion.qbk (revision 74332) +++ doc/fusion.qbk (working copy) @@ -216,6 +216,7 @@ [def __algorithm__ [link fusion.algorithm Algorithm]] [def __algorithms__ [link fusion.algorithm Algorithms]] [def __copy__ [link fusion.algorithm.auxiliary.functions.copy `copy`]] +[def __result_of_copy__ [link fusion.algorithm.auxiliary.metafunctions.copy `result_of::copy`]] [def __fold__ [link fusion.algorithm.iteration.functions.fold `fold`]] [def __result_of_fold__ [link fusion.algorithm.iteration.metafunctions.fold `result_of::fold`]] [def __reverse_fold__ [link fusion.algorithm.iteration.functions.reverse_fold `reverse_fold`]]