Как создавать контракты C++, которые компиляторы смогут использовать, как только появится поддержка (например, `[[ожидаеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как создавать контракты C++, которые компиляторы смогут использовать, как только появится поддержка (например, `[[ожидае

Сообщение Anonymous »

Должны ли вы использовать макрос для обертывания этого (плюс надеюсь, что тот, кто будет использовать ваш код годы спустя, знает, что нужно переопределить макрос для создания контрактов), например

Код: Выделить всё

#define CONTRACT(text) /* TODO */
int f(int x) CONTRACT([[expects: x > 2]]);
?
Думаю, что синтаксис атрибутов Contract близок к #pragma (так что компиляторы без поддержки это проигнорируют),
но int f(int x) [[ожидает: 1]]; (или int f(int x) [[обеспечивает: 1]];) выдает ошибку: ожидается ','
Ссылки:
https://www.open-std.org/jtc1/sc22/wg21 ... 388r4.html
https://www.open-std.org/jtc1 /sc22/wg21/docs/papers/2022/p2521r2.html
https://github.com/doxygen/doxygen/issues/6702
Ошибки Termux g++

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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