cor3ntin wrote:

I struggle to understand the motivation here: If you are not using a standard 
library implementation at all and instead act as your own standard library 
vendor, just providing a declaration of move / forward should be enough.

The concern about ABI tags only come up if the STL is indeed included, and you 
seem to say it never is. Can you explain a bit more why you are concerned about 
how things are defined in libc++?

@philnik777 Do `std::move`/ `std::forward` etc actually need an abi tag? Maybe 
we should simply not set a tag given that clang / gcc replace call to these 
functions.

I prefer this approach over `msvc::intrinsic` because at least it gives control 
over how the call is replaced.
Ie, I think the semantics you'd want is really a `substitute_with_builtin` 
(presumably just after lookup).  `intrinsic`s a very generic name with a very 
narrow set of use cases (some casts).

More general observations on the "using c++ without the STL thing":
I don't think this is a major consideration of the language/standard committee 
going forward.
As you noted, there exist a lot of type traits/functions which are or should be 
backed by compiler magic.
And we are actually extending the set of freestanding function dramatically. 
Reflection will also have a dependency on the STL

That being said, I understand the pain. 
Modules should ease that pain - I don't have a good visibility on that but my 
understanding is that some progress is being made. In the meantime, I wonder if 
there is room for a lighter utility header, one without pair/rel_ops, maybe 
that would help.

I think we could also extend the set of std functions replaced in the front end 
if we can show it would have measurable compile times improvements (ie 
to_integer, as_const, to_underlying, etc).


PS: I appreciate that this patch comes with complete documentation :)


https://github.com/llvm/llvm-project/pull/76596
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to