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

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

Сообщение Anonymous »

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

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

/* Licenses: allows all uses ("Creative Commons"/"Apache 2") */
#ifndef INCLUDE_GUARD_cxx_Macros_hxx
#define INCLUDE_GUARD_cxx_Macros_hxx
/* Miscellaneous macros */
#include  /* assert static_assert */
#include  /* false */
#include  /* __cpp_lib_unreachable */ /* [https://en.cppreference.com/w/cpp/feature_test] */
#if (defined DEBUG) && (defined static_assert)
#define UNREACHABLE static_assert(false)
#elif defined DEBUG
#define UNREACHABLE assert(false)
#elif __cpp_lib_unreachable
/* `UNREACHABLE` is close to `ASSUME(false)` */
/* Promises executable can not reach this spot, allows extra optimizations. Warning: `UNREACHABLE && UB (undefined behaviour)` */
#include  /* std::unreachable() */
#define UNREACHABLE std::unreachable()
#elif (defined __GNUC__) && ((4 

Подробнее здесь: [url]https://stackoverflow.com/questions/78531276/how-to-do-c-contracts-such-that-compilers-can-use-once-support-comes-for-this[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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