PR libstdc++/81468 constrain std::chrono::time_point constructor
commitddeff578df9f92083f397f03afc6e5ea3cb4c11a
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Sep 2017 14:07:44 +0000 (13 14:07 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 13 Sep 2017 14:07:44 +0000 (13 14:07 +0000)
tree926b06259620243860b4786932acb6d2cb1eb98b
parentca4982c229fb010229e14478e45c86bd7e52cc97
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@252085 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/chrono
libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/duration/literals/range.cc
libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc [copied from libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc with 58% similarity]