Comments 5
Надо чтобы со всеми этими костылями Rust не стал сложным как modern C++
С каких пор С++ сложный?
21,23,26
template<typename T, typename = std::enable_if_t<
std::conjunction_v<
std::is_nothrow_move_constructible<T>,
std::negation<std::is_reference<T>>,
std::disjunction<
std::is_trivially_copyable<T>,
std::is_same<std::decay_t<T>, std::string>
>
>
>>
constexpr decltype(auto) process(T&& val) noexcept(noexcept(std::declval<T>().foo()));Вместо
fn process<T>(val: T) -> T
where
T: Sized + (Copy или T == String), // псевдокод"Или" чуть сложнее, но не важно
Плюс в Rust компилятор ловит UB до ревью. В C++ ревьюер должен сам искать use-after-move, dangling references, ODR violations
Максимально проходной релиз
Sign up to leave a comment.
Rust 1.92.0: проверка типа never, unused_must_use, генерация таблицы раскрутки стека на Linux, Валидация #[macro_export]