История изменений
Исправление Siborgium, (текущая версия) :
На плюсах сейчас
На плюсах чуть меньше 10 лет назад. Портянка твоя уже банально с fold expressions в 1.5 раза схлопнется, не говоря уже о концептах.
Цифра, кстати, не от балды. Вот два эквивалентных куска кода. Это «экстремальный» пример и в среднем так хорошо не получится, но все и так понятно.
template<typename ...Traits> struct traitsHaveVoxelInterface {
template<typename Trait, typename ...RestTraits> constexpr static bool performCheck(
Trait *trait,
RestTraits... restTraits
) {
if constexpr (std::is_base_of<VoxelTypeInterface, Trait>::value) {
return true;
}
return performCheck(restTraits...);
}
constexpr static bool performCheck() {
return false;
}
static constexpr bool value = performCheck(static_cast<Traits*>(0)...);
};
template <typename ... Traits>
constexpr auto traitsHaveVoxelInterface = false || (std::is_base_of_v<VoxelTypeInterface, Traits> || ...);
А Rust пока показывает просто чудеса скорости при компиляции проекта (но там пока гораздо меньше всего реализовано)
Меньше всего реализовано, но раст показывает чудеса скорости. С чем же это связано?
Исходная версия Siborgium, :
На плюсах сейчас
На плюсах чуть меньше 10 лет назад. Портянка твоя уже банально с fold expressions в 1.5 раза схлопнется, не говоря уже о концептах.
А Rust пока показывает просто чудеса скорости при компиляции проекта (но там пока гораздо меньше всего реализовано)
Меньше всего реализовано, но раст показывает чудеса скорости. С чем же это связано?