Сообщение Re[7]: Амбигус оператор от 14.04.2025 12:58
Изменено 14.04.2025 13:02 rg45
Re[7]: Амбигус оператор
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, pilgrim_, Вы писали:
_>>Оффтоп. Мимо проходил
. По мотивам соседней темы посмотрел на твои is_bool/_is_char: https://github.com/al-martyn1/marty_format/blob/9bc7c73884f74e9fc8dbcc76e5612d504bc21cce/utils.h#L364C51-L364C52.
_>>Может не в курсе, но is_same суровый метод, и для него типы с cv-квалификаторами это разные типы, для игноар cv можно заюзать remove_cv_t, напр:
_>>
M>Спасибо!
Здесь уместно будет заюзать std::decay дабы полностью очистить тип от разного рода модификаторов, в т.ч. и ссылок, и тем самым избавиться от лишнего геморроя при работе с формальными параметрами функций:
M>Здравствуйте, pilgrim_, Вы писали:
_>>Оффтоп. Мимо проходил

_>>Может не в курсе, но is_same суровый метод, и для него типы с cv-квалификаторами это разные типы, для игноар cv можно заюзать remove_cv_t, напр:
_>>
_>>template<typename T> using is_bool = std::is_same<std::remove_cv_t<T>, bool>;
_>>
M>Спасибо!
Здесь уместно будет заюзать std::decay дабы полностью очистить тип от разного рода модификаторов, в т.ч. и ссылок, и тем самым избавиться от лишнего геморроя при работе с формальными параметрами функций:
template<typename T> using is_bool = std::is_same<std::decay_t<T>, bool>;
Re[7]: Амбигус оператор
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, pilgrim_, Вы писали:
_>>Оффтоп. Мимо проходил
. По мотивам соседней темы посмотрел на твои is_bool/_is_char: https://github.com/al-martyn1/marty_format/blob/9bc7c73884f74e9fc8dbcc76e5612d504bc21cce/utils.h#L364C51-L364C52.
_>>Может не в курсе, но is_same суровый метод, и для него типы с cv-квалификаторами это разные типы, для игноар cv можно заюзать remove_cv_t, напр:
_>>
M>Спасибо!
Здесь уместно будет заюзать std::decay дабы полностью очистить тип от разного рода модификаторов, в т.ч. и ссылок, и тем самым избавиться от лишнего геморроя при работе с формальными параметрами функций:
А ещё все вот эти метафунции std::is_... канули в прошлое с приходом концептов. То же самое, но по-современному:
M>Здравствуйте, pilgrim_, Вы писали:
_>>Оффтоп. Мимо проходил

_>>Может не в курсе, но is_same суровый метод, и для него типы с cv-квалификаторами это разные типы, для игноар cv можно заюзать remove_cv_t, напр:
_>>
_>>template<typename T> using is_bool = std::is_same<std::remove_cv_t<T>, bool>;
_>>
M>Спасибо!
Здесь уместно будет заюзать std::decay дабы полностью очистить тип от разного рода модификаторов, в т.ч. и ссылок, и тем самым избавиться от лишнего геморроя при работе с формальными параметрами функций:
template<typename T> using is_bool = std::is_same<std::decay_t<T>, bool>;
А ещё все вот эти метафунции std::is_... канули в прошлое с приходом концептов. То же самое, но по-современному:
template<typename T> concept Bool = std::same_as<std::decay_t<T>, bool>;
static_assert(Bool<const bool&>);