Вопросы по теме 'c++-concepts'
Концепции C ++ и std :: cout
Чтобы изучить концепции C ++, я попытался воссоздать концепцию EqualityComparable. Вот код, который я написал
#include <iostream>
template<typename T>
concept bool EqualityComparable = requires(T a, T b)
{
{a == b};
{a !=...
271 просмотров
schedule
25.10.2021
Почему алгоритмы диапазонов несовместимы с итераторами std?
#include <vector>
#include <iostream>
#include <range/v3/all.hpp>
int main()
{
auto coll = std::vector{ 1, 2, 3 };
ranges::copy(
coll,
ranges::ostream_iterator<int>{ std::cout, ", " }
); // ok...
774 просмотров
schedule
10.10.2021
Удовлетворенная и смоделированная концепция?
Вступление
Стандарт определяет, что каждое понятие связано с двумя предикатами:
предикат определяется: концепция удовлетворяется последовательностью аргументов шаблона, когда она оценивается как истина. Это почти синтаксическая проверка....
82 просмотров
schedule
16.10.2021
Должно ли предложение шаблона класса повторяться вне определений членов?
Когда член шаблона класса, который использует предложение requires , определен вне класса, gcc не жалуется, если requires не указан, тогда как clang делает.
Рассмотрим фрагмент кода ниже:
#include <concepts>
template<typename...
418 просмотров
schedule
16.09.2021
Используйте концепции, чтобы проверить, существует ли глобальная функция
Я могу создать концепцию, которая проверяет существование функции-члена, называемой to_string (), которая возвращает std :: string в структуре / классе.
template<typename T>
concept method_to_string = requires(T v)
{
{ v.to_string() }...
115 просмотров
schedule
24.10.2021
Являются ли концепции C ++ формой экзистенциального типа?
Я смотрел определение экзистенциальных типов в Википедии ( Existential_types ), и оно похоже на некоторый путь к концепциям в C ++ (особенно к concept lite ).
Являются ли концепции C ++ формой экзистенциального типа?
Если нет, то в чем разница...
2252 просмотров
schedule
10.03.2022
проверка типа атрибута с концепциями
Я хочу проверить, соответствует ли атрибут структуры / класса моим потребностям с концепциями, но компилятор жалуется.
Пример:
struct N
{
char value;
auto Get() { return value; }
};
struct M
{
int value;
auto Get() { return...
102 просмотров
schedule
30.03.2022
Предложение Requires появляется после параметра шаблона шаблона: это допустимая грамматика?
Недавно я неожиданно обнаружил, что gcc и msvc принимают следующий код (обратите внимание на предложение requires-clause в списке-шаблонов):
#include <vector>
template <template <class> requires true class>
void f() {}
int...
186 просмотров
schedule
01.04.2022
Основные понятия - как ограничить значение интегрального шаблона
Есть такое определение шаблона:
template<size_t N>
void foo( void ) {
/* ... */
}
Как определить понятие так, чтобы N было ненулевым положительным значением (N> = 1)?
Что-то вроде:
template<size_t N>
concept NonZeroSize...
61 просмотров
schedule
08.04.2022
Каковы варианты использования и полезность при передаче указателя на член данных в std :: invoke?
Я читал о std :: invoke по ссылке cpp и мне было интересно в каких ситуациях нам когда-либо понадобится передать в качестве первого аргумента указатель на член данных и объект в качестве второго аргумента.
Из ссылки cpp он заявляет следующее:...
97 просмотров
schedule
22.04.2022
Концепции С++ 20: как ссылаться на имя класса в предложении `requires`?
У меня есть класс CRTP
template <typename T>
class Wrapper
{
// ...
};
который предназначен для получения как
class Type : Wrapper<Type>
{
// ...
};
и я хотел бы обеспечить это, наложив ограничение на параметр шаблона T...
244 просмотров
schedule
17.05.2022
Концепция проверки функции вариативного шаблона
С C ++ 20 и концепциями за углом я подумал, можно ли написать концепцию, чтобы проверить, есть ли у Type функция с определенным именем, которая принимает любое количество произвольных аргументов.
Возьмем, к примеру, следующий код (с синтаксисом TS...
190 просмотров
schedule
25.05.2022
Что использовать в качестве замены концепций (предстоящая функция) в C++?
Что использовать в качестве замены концепций (предстоящая функция) в C++?
Возможно, вы слышали о концепциях в C++. Это функция, которая позволит вам указать требования к типам в шаблонах.
Я ищу способ сделать это сейчас, и лучшее, что я нашел,...
329 просмотров
schedule
15.06.2022
Неперегруженная функция выдает неразрешенную перегруженную ошибку при использовании в качестве аргумента по умолчанию для концепции
Фон
Согласно [temp.arg.template] / 1 ,
Аргумент-шаблон для параметра-шаблона шаблона должен быть именем шаблона класса или псевдонима шаблона, выраженного как выражение-идентификатор.
это означает, что невозможно передать шаблон функции в...
65 просмотров
schedule
24.06.2022
C ++ Concepts / SFINAE: разные результаты clang и MSVC / G ++ для определения внешней функции с шаблоном и Concept / SFINAE
Я определяю конструкторы класса, который ограничен проверкой эквивалентности типа базового типа переданного итератора по сравнению с node_type, определенным в моем классе, с помощью концепций или SFINAE.
Однако, попробовав несколько комбинаций с...
99 просмотров
schedule
14.07.2022
Две концепции, отсылающие друг к другу в своих уточнениях
Возможно ли, чтобы две концепции как-то использовали друг друга в своих уточнениях?
Пример:
template <typename T>
concept Node = /* ??? */;
template <typename T>
concept Visitor = /* ??? */;
struct NodeArchetype {
// ......
52 просмотров
schedule
24.07.2022
При голосовании за P1141R1 сколько типов выводится из нескольких выводимых параметров с одним и тем же ограничением?
Согласно Concepts TS, в то время как неограниченный выводимый параметр каждый раз дает новый параметр типа шаблона, ограниченные выводимые параметры дают только один параметр типа шаблона для каждого ограничения:
[](auto a, auto b) // IS-A...
144 просмотров
schedule
06.08.2022
Обоснование возможной реализации std :: assignable_from
У меня есть несколько вопросов о std::assignable_from поведении. Cppreference предлагает для него следующую реализацию:
template< class LHS, class RHS >
concept assignable_from =
std::is_lvalue_reference_v<LHS> &&...
167 просмотров
schedule
07.08.2022
Концепция функции-члена, принимающей параметр шаблона в C ++ 20
Я хотел бы иметь концепцию
struct creatorclass {
template<typename T>
int fct(T val)
{
return 42;
}
};
Мне нужна концепция, которая проверяет наличие функции fct без указания параметра шаблона. Это хочу иметь...
74 просмотров
schedule
07.08.2022
Ошибка концепции as_same
У меня есть хорошие черты типа, которые проверяют, является ли тип T итератором:
демо: https://wandbox.org/permlink/vUZ2hjQq6i9nlXFd
сообщение стека с объяснением: https://stackoverflow.com/a/67822208/9063139
Я пытаюсь сделать то же...
43 просмотров
schedule
19.08.2022