Am Sonntag, 3. September 2006 14:48 schrieb Abdelrazak Younes:
> Georg,
> 
> Your template solution for subst() doesn't please MSVC:

I almost expected that ;-) Does this patch work? If yes please commit it.


Georg
Index: src/support/lstrings.C
===================================================================
--- src/support/lstrings.C	(Revision 14877)
+++ src/support/lstrings.C	(Arbeitskopie)
@@ -341,7 +341,8 @@ int tokenPos(string const & a, char deli
 namespace {
 
 template<typename Ch> inline
-std::basic_string<Ch> const subst(std::basic_string<Ch> const & a, Ch oldchar, Ch newchar)
+std::basic_string<Ch> const subst_char(std::basic_string<Ch> const & a,
+		Ch oldchar, Ch newchar)
 {
 	typedef std::basic_string<Ch> String;
 	String tmp(a);
@@ -355,8 +356,8 @@ std::basic_string<Ch> const subst(std::b
 
 
 template<typename String> inline
-String const subst(String const & a,
-		   String const & oldstr, String const & newstr)
+String const subst_string(String const & a,
+		String const & oldstr, String const & newstr)
 {
 	BOOST_ASSERT(!oldstr.empty());
 	String lstr = a;
@@ -375,28 +376,28 @@ String const subst(String const & a,
 
 string const subst(string const & a, char oldchar, char newchar)
 {
-	return subst<char>(a, oldchar, newchar);
+	return subst_char(a, oldchar, newchar);
 }
 
 
 docstring const subst(docstring const & a,
 		char_type oldchar, char_type newchar)
 {
-	return subst<char_type>(a, oldchar, newchar);
+	return subst_char(a, oldchar, newchar);
 }
 
 
 string const subst(string const & a,
 		string const & oldstr, string const & newstr)
 {
-	return subst<string>(a, oldstr, newstr);
+	return subst_string(a, oldstr, newstr);
 }
 
 
 docstring const subst(docstring const & a,
 		docstring const & oldstr, docstring const & newstr)
 {
-	return subst<docstring>(a, oldstr, newstr);
+	return subst_string(a, oldstr, newstr);
 }
 
 

Reply via email to