https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81468
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Wed Sep 13 14:07:44 2017 New Revision: 252085 URL: https://gcc.gnu.org/viewcvs?rev=252085&root=gcc&view=rev Log: PR libstdc++/81468 constrain std::chrono::time_point constructor PR libstdc++/81468 * include/std/chrono (__enable_if_is_duration) (__disable_if_is_duration): New alias templates to simplify SFINAE. (duration_cast, floor, ceil): Use __enable_if_is_duration. (duration::__is_float, duration::__is_harmonic): New alias templates to simplify SFINAE. (duration::duration(const _Rep2&)): Use _Require, __is_float and __is_harmonic. (duration::duration(const duration<_Rep2, _Period2>&)): Likewise. (__common_rep_type): Remove, replace with ... (__common_rep_t): New alias template. (operator*, operator/, operator%): Use __common_rep_t and __disable_if_is_duration. (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing constraint from LWG DR 1177. * testsuite/20_util/duration/cons/dr1177.cc: New. * testsuite/20_util/duration/literals/range.cc: Update dg-error line. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/time_point/cons/81468.cc: New. Added: trunk/libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc trunk/libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc - copied, changed from r252076, trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/std/chrono trunk/libstdc++-v3/testsuite/20_util/duration/literals/range.cc trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc