этапе напсиания кода же еще проще?
Ну, это ваша работа как программиста, решить все ошибки этапа компиляции, как минимум)
Ошибка будет при компиляции, потому что тело содержит выражение callable(m_data[i]). Требования к Callable не вынесены на сигнатуру each, их можно вынести, но пока лучше этим не заморачиваться
Ну я так и понял что это все значит, дай мне что-то что можно выхвать. А вот можно или нет мы узнаем когда начнем собирать.
При компиляции файла, в котором написан вызов, узнаем.
По правде говоря если передать что-то не то в функцию принимающую указатель, как у вас, будет то же самое. Просто номер строки с ошибкой будет другой и текст соответственно тоже
Да, но если я туда передам функцию не той сигнатуры, то, теоретически мне среда скажет что я не прав еще до того как начну собирать.
Это дешевле
Вообще по темплейтам они тоже вроде умеют говорить
Ну мб от IDE зависит, я вот попробовал, мне ВС Код ничего не сказал, просто не собралИ после сборки в коде нчиего не подсветил, просто предложил ошибки покурить =/
Требование можно выставить на сигнатуру each, но вам пока не нужно
вообще template <typename Callable> void f(Callable const& callable) requires(requires{ { callable(0) }; }) { return (void)callable(0); } но это C++20, и как это делать в C++11 нужно узнавать точно после класса std::vector
Боюсь что вектор мне может быть не доступен на микрухе. Я вообще все либы которые открывал для МК, там нигде эти абстракции не используются. Я думаю это как раз в целях того чтобы не затаскивать в прошивку все std
Как ни странно, первым делом отключат <iostream>, совсем не <vector>
В любом случае, либы не очень корректно сравнивать с конечным кодом. Есть очень большое желание делать либы на сишке
Ну либы не либы, но что-то выносить придётся :)
Обсуждают сегодня