static assertions in C++

From: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: static assertions in C++
Date: 2017-08-31 20:43:00
Message-ID: 0de63a5f-6e05-56c9-b4d9-55c41d07ebc9@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Commit df1a699e5ba3232f373790b2c9485ddf720c4a70 introduced a
StaticAssertStmt() into a header file, which will fail if a module
written in C++ uses that header file. Currently, that header file is
not widely used, but it's a potential problem if the use of static
assertions expands.

As discussed in
<https://www.postgresql.org/message-id/7775.1492448671@sss.pgh.pa.us>, a
more general solution would be to add specific C++ support for static
assertions in c.h. Here is a patch for that, extracted from my
previously posted C++ patch set, but also a bit reworked from what was
previously posted.

Also attached is a little C++ test file that one can use to test this
out. (Just compiling it should cause a compiler error without the patch
and a static assertion failure with the patch.)

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachment Content-Type Size
v3-0001-Add-support-for-static-assertions-in-C.patch text/plain 1.5 KB
test.cpp text/plain 148 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2017-08-31 21:42:59 Re: static assertions in C++
Previous Message Tom Lane 2017-08-31 20:33:31 Re: sync process names between ps and pg_stat_activity