Предположим, я бы хотел написать функцию, которая принимает все, что я могу выполнить с размером ровно 2 . Как я могу написать концепцию для этого? Самое близкое, я думаю, я получил следующее: < /p>
#include
#include
#include
#include
template
concept RangeOfSize =
std::ranges::sized_range &&
requires (T i) { i.size() == N; }
;
void f(RangeOfSize auto&& r) { std::cout
Ideally it would fail to compile on the second call to f
Потому что этот массив не 2 элемента длиной. В идеале это потерпит неудачу с ошибкой приятно прочитать, но я отказываюсь от надежды на это. ).
Предположим, я бы хотел написать функцию, которая принимает все, что я могу выполнить с размером ровно 2 . Как я могу написать концепцию для этого? Самое близкое, я думаю, я получил следующее: < /p> [code]#include #include #include #include
void f(RangeOfSize auto&& r) { std::cout Ideally it would fail to compile on the second call to f[/code] Потому что этот массив не 2 элемента длиной. В идеале это потерпит неудачу с ошибкой приятно прочитать, но я отказываюсь от надежды на это. ).
Я изучаю концепции в C++ 20 и пришел к необходимости определить концепцию, используя ранее определенную концепцию.
р>
Итак, в приведенном ниже примере я ожидал, что f() сгенерирует ошибку компилятора, поскольку events_published в pub_b этого не...
В функции get_stream_container_status, если использование переменной contexpr bool, компилятор дает ошибку в отношении «stream_container», не является постоянным выражением. Но вызовите функцию в кортеже и без переменной, она успешно компилируется....
В функции get_stream_container_status, если использование переменной contexpr bool, компилятор дает ошибку в отношении «stream_container», не является постоянным выражением. Но вызовите функцию в кортеже и без переменной, она успешно компилируется....