Thread View: pl.comp.lang.c
2 messages
2 total messages
Started by Borneq
Fri, 20 May 2016 05:25
templaty - jak kompilować zależnie od typu T?
Author: Borneq
Date: Fri, 20 May 2016 05:25
Date: Fri, 20 May 2016 05:25
17 lines
1584 bytes
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?
Author: Borneq
Date: Fri, 20 May 2016 05:31
Date: Fri, 20 May 2016 05:31
6 lines
1215 bytes
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