LB--

Results 116 comments of LB--

> Not sure why it feels like all your examples are just confirming my points? Because we agree that there should be a warning/error but we disagree on when and...

The fact they participate in overload resolution and generate compile errors is a desired feature, actually. The alternative is removing an overload and some code picks a different overload by...

Additionally, the default configuration makes it very slow, which surprises people coming from "slower" languages that can output to stdout faster by default: https://en.cppreference.com/w/cpp/io/ios_base/sync_with_stdio

Interestingly, it appears to be possible to implement `std::reference_converts_from_temporary` in C++11, so the fact it took until C++23 is a bit surprising. Or maybe there is some part of it...

It's used in the definition of the `INVOKE` exposition-only operation: https://en.cppreference.com/w/cpp/utility/functional ![image](https://github.com/lefticus/cpp_weekly/assets/1296838/140515d7-e5ca-486f-b458-889e512422b8) In particular this means `std::invoke_r` protects you from creating dangling references in some cases.

What happens if you do it with a key type of `std::string` and you try to `.find("raw string literal")` by accident instead of `.find("string view literal"sv)`? Does it try to...

The solution to this problem is C++20 modules. Are you targeting any platforms that don't support that yet?

I'd guess it's because `std::to_string` does not have any formatting options to consider, whereas streams have to consider a wide variety of formatting effects. How did you perform the testing...

It [looks like](https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt.html) the [`operator

Unfortunately it breaks RVO and in-place construction because it has to move the arguments, so raw placement new still has to be used in some cases. Perhaps that is why...