История изменений
Исправление
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;
}
Исходная версия
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;
}