Bazı şablon türlerini dizeye dönüştürmesi gereken şablon kodum var. Bunun için kendi türlerim için to_string'e aşırı yükleniyorum. Ama tür zaten bir dize de olabilir. Daha sonra derleme başarısız olur, çünkü tür dizgisi için to_string fazla yüklenmez (sadece argümanını döndürür).Neden to_string yok (const string &)?
düzenleme: örnek kod:
template<class T>
class TemplatedClass
{
public:
string toString() const
{
// this should work for both simple types like int, double, ...
// and for my own classes which have a to_string overload
// and also for string, which is the reason for my question
return string("TemplatedClass: ").append(to_string(t_));
}
private:
T t_;
};
nasıl sorunu çözmek için bize soruyorsunuz ya neden hiçbir aşırı yük arıyoruz edilir? Eski için lütfen MCVE sağlayın. Sonuncusu için, cevap vermek kolay - çünkü bu aşırı yükleme saçma olurdu. – SergeyA
Kendin yazabilir misin? Ayrıca, bu işleç için daha uygun olan ancak daha fazla "deyimsel" olan bazı operatör << veya diğer serileştirme yöntemlerini kullanmak daha iyi olurdu. – rubenvb
Bir dize alan ve dizenin bir kopyasını döndüren 'to_string' işlevine sahip olmak saçma olurdu. Bunu sadece “std :: string” dizgesi ile yapabilirsiniz. Kodunuz "to_string" işlevini kullanıyor gibi görünüyor? – NathanOliver