C++ Logo

std-proposals

Advanced search

Re: [std-proposals] assert functionality on non-debug builds

From: René Ferdinand Rivera Morell <grafikrobot_at_[hidden]>
Date: Wed, 17 Aug 2022 11:27:22 -0500
On Wed, Aug 17, 2022 at 9:52 AM Florian Gavril via Std-Proposals <
std-proposals_at_[hidden]> wrote:

> Hello,
>
> As everyone knows that, the assert macro is very useful to find out
> unexpected conditions on the development stage, but for the production
> builds, the NDEBUG is usually enabled and assert is actually disabled. If
> assert is used, for example, in a function, to check if one of the
> parameters is not NULL, the program execution is terminated and some
> messages are displayed. But if NDEBUG is defined, the program will silently
> continue until the disaster happens. In order to avoid this situation, the
> programmer adds a double check for that parameter with a retur routine.
>
> Basic example:
> int func(int *p) {
>
>
>
> * assert(p); if (p == NULL) { return 0; }*
> ..........
> return 1;
> }
>
> My proposal is to re-define assert or define a new macro (let's say
> assertr, pretty much like assertm) which will take two arguments: condition
> and the return value for non-debug builds, In this case, the previous code
> may be compacted:
> int func(int *p) {
> *assertr(p, 0);*
> ..........
> return 1;
> }
>

Would this proposal cover your use case? https://wg21.link/p2546r

-- 
-- René Ferdinand Rivera Morell
-- Don't Assume Anything  -- No Supone Nada
-- Robot Dreams - http://robot-dreams.net

Received on 2022-08-17 16:27:37