Article View: pl.comp.lang.c
Article #308581templaty - jak kompilować zależnie od typu T?
From: 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
Technical Details
Message-ID:
<nhm74p$fsg$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Borneq <borneq@antyspam.hidden.pl> Newsgroups: pl.comp.lang.c Subject: templaty - jak kompilować zależnie od typu T? Date: Fri, 20 May 2016 07:25:44 +0200 Organization: ATMAN - ATM S.A. Lines: 17 Message-ID: <nhm74p$fsg$1@node2.news.atman.pl> NNTP-Posting-Host: 91.239.205.105 Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1463721945 16272 91.239.205.105 (20 May 2016 05:25:45 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Fri, 20 May 2016 05:25:45 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 X-Mozilla-News-Host: news://news.atman.pl:119 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit