Перегруженные `&&`/`||` Операторы в концепциях и требуемых припадкахC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Перегруженные `&&`/`||` Операторы в концепциях и требуемых припадках

Сообщение Anonymous »

Я сделал макрос для оператора «подразумевает». Он работает нормально в целом, но ломается на Clang, когда используется в концепции или требуется оказание.
namespace detail
{
template
concept BoolLike = requires(T &&t) {(T &&)t ? true : false;};

struct Implies
{
template
friend constexpr bool operator||(T &&lhs, Implies)
{
return !bool((T &&)lhs);
}
};
}

#define IMPLIES ||::detail::Implies{}||

template
concept A = true IMPLIES true;

static_assert(A);
< /code>
clang говорит: < /p>
:19:18: error: atomic constraint must be of type 'bool' (found '::detail::Implies')
19 | concept A = true IMPLIES true;
| ^~~~~~~
:16:19: note: expanded from macro 'IMPLIES'
16 | #define IMPLIES ||::detail::Implies{}||
| ^~~~~~~~~~~~~~~~~~~
< /code>
, в то время как GCC и MSVC с радостью принимают этот код. Какой компилятор правильный?


Подробнее здесь: https://stackoverflow.com/questions/794 ... es-clauses
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Перегруженные `&&`/`||` Операторы в концепциях и требуемых припадках
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Перегруженные `&&`/`||` Операторы в концепциях и требуемых припадках
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Создавайте перегруженные функции, игнорируя ненужные параметры в сигнатуре.
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Создавайте перегруженные функции, игнорируя ненужные параметры в сигнатуре.
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Создавайте перегруженные функции, игнорируя ненужные параметры в сигнатуре.
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»