LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

Ящетаю, это баг в стандарте. Ведь с пользовательскими типами все работает (в большинстве своем) изза дефолтного T& operator=(T&&).

#include <type_traits>

struct T { T& operator=(T&&) = delete; /* kablamo, type_traits! */ };

int main() {
  return std::is_assignable_v<T, T>;
}

https://cppinsights.io/lnk?code=I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKc3RydWN0IFQgeyBUJiBvcGVyYXRvcj0gKFQmJikgPSBkZWxldGU7IH07CgppbnQgbWFpbigpIHsKICByZXR1cm4gc3RkOjppc19hc3NpZ25hYmxlX3Y8VCwgVD47Cn0K&insightsOptions=cpp17&std=cpp17&rev=1.0

Исправление KennyMinigun, :

Ящетаю, это баг в стандарте. Ведь с пользовательскими типами все работает (в большинстве своем) изза дефолтного T operator=(T&&).

#include <type_traits>

struct T { T& operator=(T&&) = delete; /* kablamo, type_traits! */ };

int main() {
  return std::is_assignable_v<T, T>;
}

https://cppinsights.io/lnk?code=I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKc3RydWN0IFQgeyBUJiBvcGVyYXRvcj0gKFQmJikgPSBkZWxldGU7IH07CgppbnQgbWFpbigpIHsKICByZXR1cm4gc3RkOjppc19hc3NpZ25hYmxlX3Y8VCwgVD47Cn0K&insightsOptions=cpp17&std=cpp17&rev=1.0

Исправление KennyMinigun, :

Ящетаю, это баг в стандарте. Ведь с пользовательскими типами все работает (в большинстве своем) изза дефолтного T operator=(T&&).

#include <type_traits>

struct T { T& operator=(T&&) = delete; /* kablamo, type_traits! */ };

int main() {
  return std::is_assignable_v<T, T>;
}

Исходная версия KennyMinigun, :

Ящетаю, это баг в стандарте. Ведь с пользовательскими типами все работает (в большинстве своем) изза дефолтного T operator=(T&&).

#include <type_traits>

struct T { T(T&&) = delete; /* kablamo, type_traits! */ };

int main() {
  return std::is_assignable_v<T, T>;
}