[clang] [Clang] Add [[clang::complete_on_member_instantiation]] (PR #211231)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 24 06:37:32 PDT 2026
erichkeane wrote:
> @cor3ntin @erichkeane How would you feel about a conceptually more general attribute, but remove any stability commitments?
>
> Specifically, I had in mind that we could rename this something like `[[__clang_experimental__::__container_of_type__(T)]]` (I'd probably just hard-code the underscores, since this wouldn't be intended for general use) and the only guarantee that is being made is that `__has_cpp_attribute(__clang_experimental__::__container_of_type__)` changes the value if the implementation changes in any (possibly incompatible with previous versions) way. That would allow for modifications or removal at any point, which should remove any maintainability concerns.
>
> On the libc++ side we'd of course then check for `__has_cpp_attribute(__clang_experimental__::__container_of_type__) == 1`.
I think that is a uniquely useful attribute here, though I wouldn't do any goofy spellings (we don't tend to do that for attributes). But a 'container-of' attribute is perhaps something useful. I WOULD be interested in exploring how specific we want that to be. In the past, we've considered for optimization opportunities (particularly now that CIR is being worked on) a way to specify WHAT type of container on top of that (contiguous memory, R/B tree, etc).
So I'd be interested in seeing something like this fleshed out.
https://github.com/llvm/llvm-project/pull/211231
More information about the cfe-commits
mailing list