Public bug reported:
template<typename T>
concept bool Addable = requires (T x, T y) {
{ x + y } -> T;
{ x += y } -> T&;
};
template<typename T>
concept bool SSemiring = requires(typename T::element_t& a, typename
T::element_t& b, const Addable* vptr) {
{ a + b } -> typename T::element_t;
{ a * b } -> typename T::element_t;
{ T::zero() } -> typename T::element_t;
{ T::one() } -> typename T::element_t;
{ typename T::element_t{vptr} };
};
produces:
gcc_bug.hpp:10:93: internal compiler error: in
synthesize_implicit_template_parm, at cp/parser.c:39065
concept bool SSemiring = requires(typename T::element_t& a, typename
T::element_t& b, const Addable* vptr) {
^~~~~~~
** Affects: gcc-8 (Ubuntu)
Importance: Undecided
Status: New
** Tags: concepts
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1831222
Title:
Concept declaration requiring another concept fails
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-8/+bug/1831222/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs