🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Borneq Fri, 20 May 2016 05:25
templaty - jak kompilować zależnie od typu T?
#308581
Author: Borneq
Date: Fri, 20 May 2016 05:25
17 lines
1584 bytes
template <typename T>
	static T string_to_T(std::string const &val) {
		std::istringstream istr(val);
		T returnVal;
		istr >> returnVal;
		return returnVal;
	}

konwertuje stringa na typ T.
Jeśli T był double, było źle gdy podany string do konwersji nie 
przedstawiał żadnej liczby. Ani wyjątku, ani ustawiania na zero w 
przypadku braku konwersji. (jak zrobić wyjątek tu?)
Zrobiłem T returnVal = 0; i jeśli po konwersji liczba 0 to błędna 
konwersja. Też źle bo zero to legalna liczba, powinien być wyjątek.
Jednak "T returnVal = 0" jest źle gdy T jest stringiem.
Chciałbym sprawdzić jaki rodzaj typu T i zgłaszać wyjątek.
Coś: if  T==string ; else if T=int ; else if T=double
Re: templaty - jak kompilować zależnie od typu T?
#308582
Author: Borneq
Date: Fri, 20 May 2016 05:31
6 lines
1215 bytes
W dniu 20.05.2016 o 07:25, Borneq pisze:
> Zrobiłem T returnVal = 0; i jeśli po konwersji liczba 0 to błędna
> konwersja. Też źle bo zero to legalna liczba, powinien być wyjątek.
> Jednak "T returnVal = 0" jest źle gdy T jest stringiem.
Obejście problemu w konkretnej sytuacji:
T returnVal = { 0 };
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads