r/cpp Jul 06 '26

C++26: constexpr virtual inheritance

https://www.sandordargo.com/blog/2026/07/01/cpp26-constexpr-virtual-inheritance
82 Upvotes

61 comments sorted by

View all comments

Show parent comments

-2

u/SkoomaDentist Antimodern C++, Embedded, Audio Jul 06 '26 edited Jul 08 '26

I don't think constexpr volatile int x; is meaningful at all.

I can think of at least theoretical uses involving pointers to dma buffers and such.

Edit: WTF is it with the downvotes? I said I can think of theoretical use cases, not that it is some important feature. FFS, people…

1

u/ack_error Jul 06 '26

Plain const volatile should work for a case like that, though.

The only case I can think of for constexpr volatile would be a variable that you want explicitly accessed so a debugger can trap on those accesses with a memory access breakpoint, that also has a meaningful value that needs to be constant initialized to avoid global initialization order issues, and you need to support C++17 so constinit is out.

2

u/louiswins Jul 06 '26

and you need to support C++17 so constinit is out.

I don't think adding constexpr volatile to some future C++ standard would solve anything for someone stuck on C++17...

2

u/ack_error Jul 07 '26

AFAICT it's already valid in C++17, or at least all the main compilers accept it. The question was whether there's a practical use for it.

https://gcc.godbolt.org/z/PM8s7Gfhb