
"Jonathan Turkanis" <technews@kangaroologic.com> wrote in message news:cub5f6$ulc$1@sea.gmane.org... | Thorsten Ottosen wrote: | > That is often a problem because of multiple overloads, that is, | > we get ambiguity. Basically I think we got two alternatives: | > | > 1. | > template< class Iter > | > void container::assign( const iterator_range<Iter>& ); | > ... | > container c; | > c.assign( make_iterator_range( some_range ) ); | > | > 2. | > | > template< class Range | > void container::assign_range( const Range& ): | > .... | > container c; | > c.assign_range( some_range ); | > | > Which one do you prefer? | | I definitely prefer "assign" to "assign_range". Could you say more explcitly | what the ambiguity would be if you try to make assign and insert to too much | work? yes, the problem shows up when an implicit conversion from Derived* to Base* is needed and when another templated overload exists. The templated overload does not require any conversions and so is deemed a better match. The attached code shows the problem. I guess the problem could be removed with disable_if<>. -Thorsten begin 666 range.cpp M(VEN8VQU9&4@/'9E8W1O<CX-"B-I;F-L=61E(#QB;V]S="]T>7!E7W1R86ET M<R]I<U]P;VEN=&5R+FAP<#X-"B-I;F-L=61E(#QB;V]S="]S=&%T:6-?87-S M97)T+FAP<#X-"@T*=&5M<&QA=&4\(&-L87-S(%0@/@T*<W1R=6-T(&YE=U]V M96-T;W(-"GL-"B @("!T>7!E9&5F('-T9#HZ=F5C=&]R/%0J/B @(" @(" @ M(" @("!T>7!E.PT*(" @('1Y<&5D968@='EP96YA;64@='EP93HZ:71E<F%T M;W(@(" @(&ET97)A=&]R.PT*#0H@(" @=F]I9"!I;G-E<G0H(&ET97)A=&]R M+"!4*B I#0H@(" @>PT*(" @('T-"@T*(" @('9O:60@:6YS97)T*"!I=&5R M871O<BP@5"8@*0T*(" @('L-"B @("!]#0H-"B @("!T96UP;&%T93P@8VQA M<W,@4F%N9V4@/@T*(" @('9O:60@:6YS97)T*"!I=&5R871O<BP@8V]N<W0@ M4F%N9V4F('(@*0T*(" @('L-"B @(" @(" @0D]/4U1?4U1!5$E#7T%34T52 M5"@H("%B;V]S=#HZ:7-?<&]I;G1E<CQ286YG93XZ.G9A;'5E("DI.PT*(" @ M('T-"@T*(" @(&ET97)A=&]R(&)E9VEN*"D-"B @("![#0H@(" @(" @(')E M='5R;B!I=&5R871O<B@I.PT*(" @('T-"GT[#0H-"G-T<G5C="!&;V\-"GL- M"GT[#0H-"G-T<G5C="!"87(@.B!&;V\-"GL-"GT[#0H-"G1E;7!L871E/"!C M;&%S<R!4+"!C;&%S<R!5(#X-"G9O:60@9F]O*"D-"GL-"B @("!N97=?=F5C M=&]R/%0^('8[#0H@(" @=BYI;G-E<G0H('8N8F5G:6XH*2P@;F5W(%4@*3L@ M(" @#0H@(" @=BYI;G-E<G0H('8N8F5G:6XH*2P@=B I.PT*?0T*#0II;G0@ M;6%I;B@I#0I[#0H-"B @("!F;V\\:6YT+&EN=#XH*3L@+R\@;VL-"B @("!F M;V\\1F]O+$9O;SXH*3L@+R\@;VL-"B @("!F;V\\1F]O+$)A<CXH*3L@+R\@ *9&]H#0H-"GT-"@`` ` end