2013-04-23 30 views
13
ben this answer sağlanan zarif bir çözüm çalışıyorum

verir ama denemek ne olursa olsun, bu hat için hatayı Implicit instantiation of undefined template geçmiş olsun edemez:ostringstream bana Örtülü örnekleme hatası

std::ostringstream strs;

Ben gerekenler yap? Aşağıdakileri ekledim, ki eminim ki aşırıya kaçmak. İkinci bir soru olarak tam olarak ostringstream dahil gerekenleri izleyerek bulmak zor görünüyor:

#include <iostream> 
#include <fstream> 
#include <iosfwd> 
#include <ios> 
+1

Sağladığınız bağlantıyı görüyorum ve amacınız çiftli bir dizeyi değiştirmekse ve C++ 11 desteğiniz varsa, sadece 'std :: to_string (double)' komutunu kullanın. – stardust

cevap

36

stringstream sınıflar sstream başlığında tanımlanır, bu nedenle

#include <sstream> 

yazmak ve tüm iyi olacak.

+1

teşekkürler, işe yaradı, bunu kolayca nasıl bulabileceğimi merak ediyorum. Ben baktım ve bu başlık hakkında hiçbir şey söylemiyor: http://www.cplusplus.com/reference/sstream/ostringstream/. Derleyicim (Xcode), iosfwd'de – johnbakers

+0

@SebbyJohanns ''de bildirildiğini, yalnızca i/o sınıfları için * bildirim * sağladığını söylüyor. * Tanımı * için cpp dosyanızda doğru başlığı '# içermeniz gerekir. ', tam sınıf tanımına ihtiyacınız olmayan başlıklarda kullanılmak üzere hazırdır. Bu derleme sürelerini azaltmaya yardımcı olur. –

+1

teşekkürler. Yine de, başlıkların bu gibi şeylerin tam tanımlarını içerdiğini bulmanın en iyi yolunu bilmek isterim. Burada poz vermeden önce onu izlemek için oldukça kaz bir kovalamaydı ve görünüşe bakılması gereken temel bir görev gibi görünüyor. Bunu nerede yapardım? @indeterminatelysequenced – johnbakers