This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
2004.duration::operator*
has template parameters in funny order
Section: 30.5.6 [time.duration.nonmember] Status: C++11 Submitter: P.J. Plauger Opened: 2010-10-14 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [time.duration.nonmember].
View all issues with C++11 status.
Discussion:
In [time] and [time.duration.nonmember] we have:
template <class Rep1, class Period, class Rep2> duration<typename common_type<Rep1, Rep2>::type, Period> operator*(const Rep1& s, const duration<Rep2, Period>& d);
Everywhere else, we always have <rep, period>
in that order for a given type. But here, we have Period
and Rep2
in reverse order for <Rep2, Period>
. This is probably of little importance, since the template parameters are seldom spelled out for a function like this. But changing it now will eliminate a potential source of future errors and confusion.
Proposed resolution:
Change the signature in [time] and [time.duration.nonmember] to:
template <class Rep1, class PeriodRep2, class Rep2Period> duration<typename common_type<Rep1, Rep2>::type, Period> operator*(const Rep1& s, const duration<Rep2, Period>& d);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4