LINUX.ORG.RU

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

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

Я не тупой, пример отсылает к использованию const в сообщении zurg.

Я не знаю как концепты пишутся да и С++ в целом, но вот что то получилось, можно ограничить тип по свойству Trait, и написать функцию которая не сотрет тип.

// trait Trait {}
template <typename T> struct Trait { static const bool value = false; };

// impl Trait for i32
template <> struct Trait<int> { static const  bool value = true; };

template <typename T> requires Trait<T>::value
T add(T a, T b) {
  return a + b;
}
zurg вот тут демонстрируется что ты описывал, можно ли в Rust работать с типом у которого есть свойство (Trait), а не только со свойством типа (странно звучит, вот абстрактный класс нормально подходит к ситуации в Rust).

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

Я не тупой, пример отсылает к использованию const в сообщении zurg.

Я не знаю как концепты пишутся да и С++ в целом, но вот что то получилось, можно ограничить тип по свойству Trait, и написать функцию которая не сотрет тип.

// trait Trait {}
template <typename T> struct Trait { static const bool value = false; };

// impl Trait for i32
template <> struct Trait<int> { static const  bool value = true; };

template <typename T> requires Trait<T>::value
T add(T a, T b) {
  return a + b;
}

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

Я не тупой, пример отсылает к использованию const в сообщении zurg.

Я не знаю как концепты пишутся, но вот что то получилось, можно ограничить тип по свойству Trait, и написать функцию которая не сотрет тип.

// trait Trait {}
template <typename T> struct Trait { static const bool value = false; };

// impl Trait for i32
template <> struct Trait<int> { static const  bool value = true; };

template <typename T> requires Trait<T>::value
T add(T a, T b) {
  return a + b;
}