Anatoliy V Tomilov
Anatoliy V Tomilov
Note, that in C++11 and later destructors marked by `noexcept` implicitly (if destructors of all non static members and base classes are `noexcept` in its turn). There no need to...
I always thought that the use of the `std::unique_ptr` does not lead to any run-time performance degradation. It is as simple as possible, I sure. Keeping compatibility with boost in...
@cbeck88 `recursive_wrapper` is wrapper around pointer (or reference) — this is essential thing for its implementation (due to wrapped type's incompleteness at point of instantiation of `recursive_wrapper`). Moreover, it is...
Why is it the problem? There are hash collisions anyways. After matching the hashes of two values any algorithm which uses hashes should to compare for equality. Variants with different...
I sure the probability of `hash(A) == hash(B)` is the same as probability of `combine(hash(A), hash(index(A))) == combine(hash(B), hash(index(B)))`. Say `decltype(A) == int` and `decltype(B) == char`, hash is identity...
Anyways hash combining every time for any alternative type is permanent runtime overhead. But `std::variant< T, T >` is hardly useful. Why there should be different hash values for first...
> Если оба варианта в чём-то не очень > То почему бы не рассмотреть третий, компромиссный? что делать в случае `auto a = [std::move(getMyVariable())] {}`?
> не умеет перемещающее присваивание, `swap` и т.п. но ведь можно в такой `allocation_deleter` положить аллокатор, предварительно обернув его в `unique_ptr`? :)
В C++ Core Guidelines такое [предлагается](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines).
`&&`, `||` - это не "диграфы". Это основное написание операторов и оно не имеет альтернативного в виде диграфов.