Re: Change copyObject() to use typeof_unqual

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: Jelte Fennema-Nio <postgres(at)jeltef(dot)nl>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Change copyObject() to use typeof_unqual
Date: 2026-03-13 16:00:15
Message-ID: ae29dfa3-9678-468a-879b-8a4c0e74f826@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 13.03.26 14:03, Daniel Gustafsson wrote:
>> On 13 Mar 2026, at 11:43, Peter Eisentraut <peter(at)eisentraut(dot)org> wrote:
>
>> I committed this and it still fails, but the failure is now narrower. There is a failure on buildfarm member taipan because it uses an unusual combination of gcc and clang (the gcc is much newer than clang). The only sensible workaround I could think of is a hardcoded override based on the clang version, as in the attached patch. And alternative is that we decide that we don't want to support this combination, meaning that we would effectively require that clang is approximately as-old-or-newer than gcc.
>
> I ran into this as well on clang 15 via XCode with no gcc involved:
>
> ../src/test/modules/test_cplusplusext/test_cplusplusext.cpp:41:22: error: no template named 'remove_reference_t' in namespace 'std'; did you mean 'remove_reference'?
> RangeTblRef *copy = copyObject(nodec);
> ^~~~~~~~~~~~~~~~~

Jelte,

I read here

https://en.cppreference.com/w/cpp/types/remove_reference.html

that remove_reference_t is actually in C++14, which might explain this
failure, if the compiler is in C++11 mode.

I don't understand the difference between remove_reference and
remove_reference_t.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2026-03-13 16:08:14 Re: Speed up COPY FROM text/CSV parsing using SIMD
Previous Message Nazir Bilal Yavuz 2026-03-13 15:58:49 Re: Speed up COPY FROM text/CSV parsing using SIMD