Deutsch   English   Français   Italiano  
<vgj3n1$2pbqp$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Thiago Adams <thiago.adams@gmail.com>
Newsgroups: comp.lang.c
Subject: clang and gcc are not converging on constexpr
Date: Thu, 7 Nov 2024 16:16:49 -0300
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <vgj3n1$2pbqp$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 07 Nov 2024 20:16:50 +0100 (CET)
Injection-Info: dont-email.me; posting-host="92004c3695555ecdb13cc05ab26d8707";
	logging-data="2928473"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/GttWjUAdpjsUr6+cwMoobF6ji22Yvnqc="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:dDM15UhjRuD/JraQQD1F8pE9vHU=
Content-Language: en-US
Bytes: 1340


The differences relate to arrays. I think the standard leaves some 
flexibility in the specification, so there may not be a strict right or 
wrong - just different approaches. The challenge for creating portable 
code is knowing when it will work consistently across different compilers.

Sample

int main() {
     constexpr int a[] = {1, 2};
     static_assert(a[0] == 1);
}

works in clang but not in gcc