Size: a a a

2020 July 13

ПК

Побитый Кирпич... in pro.cxx
Danya
Допустим я пишу либу
И допустим я хочу поддержать концепты в либе и у меня есть два способа
1)
template<MYLIB_CONSTRAINT(constraint_expression) T>
Который будет раскрываться в typename при стандарте < 20
2)
template<typename T>
MYLIB_REQUIRES(constraint_expression)
Который при стандарте < 20 будет раскрываться в пустоту
Есть ли какая-то принципиальная разница в этих примерах и какой бы выбрали сами?
Мне кажется концепты это не опциональная фича, т.к. влияет на выбор перегрузки. Поэтому делай требования С++20 и пиши нормально концепты
источник

D

Danya in pro.cxx
Побитый Кирпич
Мне кажется концепты это не опциональная фича, т.к. влияет на выбор перегрузки. Поэтому делай требования С++20 и пиши нормально концепты
Там однозначные перегрузки
источник

АК

Александр Караев... in pro.cxx
Danya
Там однозначные перегрузки
Ассерт внутри?
источник

D

Danya in pro.cxx
Нет, там везде разный набор аргументов
источник

D

Danya in pro.cxx
Не будет такого:
void foo(const constraint auto&);
void foo(const auto&);
источник
2020 July 14

К

Кiт в талкане... in pro.cxx
Нашёл чат C++, а где чат обычного C
источник

AP

Antony Polukhin in pro.cxx
Здесь же. Мы всем рады, вне зависимости от наличия плюсов
источник

AS

Anatoly Shirokov in pro.cxx
Кiт в талкане
Нашёл чат C++, а где чат обычного C
можно сразу задавать вопрос, ответят-ответят, не ответят - подскажут куда обратиться
источник

A

Alex in pro.cxx
А можно вот таким образом использовать operator, ?
if (std::lock_guard lock(mutex), a && b) {}


Идея в том, чтобы вычислить и проверить a && b (bool), но сделать это под локом.
источник

АВ

Александр Водянников... in pro.cxx
lock_guard() что возвращает ?
источник

AT

Andrew Titov in pro.cxx
Alex
А можно вот таким образом использовать operator, ?
if (std::lock_guard lock(mutex), a && b) {}


Идея в том, чтобы вычислить и проверить a && b (bool), но сделать это под локом.
Это же "if with initializer". :)
https://en.cppreference.com/w/cpp/language/if
источник

A

Alex in pro.cxx
ничего, это декларация, а разве возвращается не правая часть выражения?
источник

AT

Andrew Titov in pro.cxx
Александр Водянников
lock_guard() что возвращает ?
Это конструктор.
источник

АВ

Александр Водянников... in pro.cxx
Тогда что проверят то с помощью if
источник

АВ

Александр Водянников... in pro.cxx
?
источник

D

Dmitriy in pro.cxx
Может, лучше
if(lock_guard g(mtx); cond)

?
источник

A

Alex in pro.cxx
Тоже думаю в этом направлении
источник

A

Alex in pro.cxx
Но вы мне скажите, так будет работать или нет?) Вопрос в том, когда вызовется деструктор lock_guard.
источник

AT

Andrew Titov in pro.cxx
Alex
ничего, это декларация, а разве возвращается не правая часть выражения?
Да, правая.

Хм... а declaration разве можно так использовать? Это ведь statement.
источник

PK

Pavel Kotov in pro.cxx
Dmitriy
Может, лучше
if(lock_guard g(mtx); cond)

?
Но тут скоуп больше, чем в оригинальном варианте
источник