Вопросы по теме 'c++-concepts'
Гипотетические вопросы о концепциях C ++ 0x
( Преамбула: Я поздно последовал за игрой C ++ 0x, и недавние споры об удалении концепций из стандарта C ++ 0x побудили меня узнать о них больше. Хотя я понимаю что все мои вопросы полностью гипотетические - поскольку концепции не будут...
475 просмотров
schedule
29.06.2023
Моделирование концепций C ++ с помощью свойств Scala
В документе « Классы типов как объектов и Implicits » . Я пытаюсь написать что-то вроде InputIterator концепции и find функции на Scala:
concept InputIterator<typename Iter> {
typename value_type;
value_type operator*(Iter);...
295 просмотров
schedule
07.03.2024
Почему конкретное ограничение концепции дублируется в созданном шаблоне?
Я только начал экспериментировать с концепциями C ++, используя g ++ 6.1.0 (версия пакета Debian 6.1.1-1, флаги -std=c++17 -fconcepts ), и я столкнулся с сообщением об ошибке, которое я не понимаю в следующем сокращенном примере:
#include...
107 просмотров
schedule
26.02.2023
ограничение специализаций с использованием SFINAE, ограничений или концепций?
Следующая программа работает нормально:
struct M; // forward declare so compiler will recognize this type
struct N;
template< typename J > struct B { template< typename U > void Func1(); };
template<> template<> void...
415 просмотров
schedule
28.06.2022
Определение концепции, требующее ограниченной функции-члена шаблона
Примечание: все последующее использует реализацию Concepts TS в GCC 6.1
Допустим, у меня есть концепция Surface , например:
template <typename T>
concept bool Surface() {
return requires(T& t, point2f p, float radius) {...
2116 просмотров
schedule
30.03.2022
Обнаружение концепции TS с помощью GCC 6.1
Как определить наличие TS Concepts с помощью GCC 6.1?
На этой странице предлагается предопределить макрос __cpp_experimental_concepts в реализации, поддерживающей концепцию TS. . Однако следующая тестовая программа компилируется без ошибок на...
391 просмотров
schedule
07.12.2022
Избегать дублирования требований в предварительном объявлении шаблона?
Играю с Concepts TS в новом проекте. Мой вопрос связан с кажущейся круговой зависимостью, которая у меня есть между шаблоном структуры и связанной концепцией, которую я хочу создать. Конкретная логика концепции состоит в том, чтобы проверить,...
234 просмотров
schedule
31.01.2023
Может ли пространство имен (быть/удовлетворять) концепции?
Я знаю, что предложение C++ Concepts предназначено, возможно, среди прочего, для наложения ограничений на параметры шаблона (скажем, на «последовательность») в текущей ситуации, в которой все, что удается скомпилировать, достаточно хорошо (и сообщения...
113 просмотров
schedule
16.06.2023
Цикл понятий C++
Я хотел бы попросить компилятор проверить, содержит ли кортеж только «метатипы».
Кстати, я совершенно новичок в концепциях С++.
template < typename T >
struct Type {
using type = T;
};
//! A type can be easily check with a small...
410 просмотров
schedule
09.06.2022
Использование концепций для разрешения перегрузки функций (вместо SFINAE)
Пытаюсь попрощаться со СФИНАЕ.
Можно ли использовать concepts для различения функций, чтобы компилятор мог сопоставить правильную функцию в зависимости от того, соответствует ли отправленный параметр concept ограничениям?
Например,...
241 просмотров
schedule
14.03.2022
Как размещение определения понятия меняет поведение программы
Я компилирую этот код с gcc 9.3 с -fconcepts .
Следующее успешно компилируется
void f(int) {} // 1
template<typename T> // 2
concept C = requires (T a)
{ { f(a) }; };
template<C T> // 3
void g()...
64 просмотров
schedule
18.06.2022
Можно ли определить вызываемое понятие, включающее функции и лямбда-выражения?
Я хочу определить концепцию, которая будет принимать все вызываемые объекты. Вот что я сделал до сих пор:
template<typename F>
concept Func = std::is_function_v<std::remove_pointer_t<std::decay_t<F>>> || (requires (F f) {...
237 просмотров
schedule
15.01.2023
Самореференциальные концепции c ++ 20
Что является моральным эквивалентом следующего недействительного кода?
// Suppose you want to check, as part of a concept,
// if some operation on a type results in a type that models such concept.
// you cannot constrain the resulting type with...
139 просмотров
schedule
14.04.2024
Можно ли использовать концепции с идиомой CRTP?
Учитывая следующий пример кода с любопытным повторяющимся шаблоном (CRTP):
template<typename X>
struct Base {
X f() const { return X{}; }
};
template<template<typename> typename T>
struct Derived : T<Derived<T>>...
199 просмотров
schedule
10.09.2022
Это правильное использование концепций C ++ 20?
У меня есть простой класс Vec3<T> , и я хотел бы обновить его, используя концепции C ++ 20 (Clang 10.0.0 с -std = c ++ 20). Новая версия выглядит примерно так:
template <typename T> concept Arithmetic = std::is_arithmetic_v<T>;...
359 просмотров
schedule
15.06.2023
Как я могу перегрузить функцию для концепции?
Предположим, у меня есть шаблон функции и различные перегрузки, которые специализируют шаблон. Поскольку перегрузки лучше соответствуют версии шаблона при разрешении перегрузки, они всегда будут иметь приоритет.
template <typename T>
void...
120 просмотров
schedule
13.10.2022
Лямбдификация концепции - это улучшение или плохая практика?
Похоже, что вы можете добавить лямбду в концепцию, а затем написать в ней код. Возьмем это для примера. Я предпочитаю стандартные концепции для таких концепций и помню, что это только для целей этого примера - godbolt
template<class T>...
138 просмотров
schedule
21.07.2023
Разница между std::same_as и std::is_same
Я читал документацию std::same_as и похоже, что она просто перенаправляется на std::is_same_v . cppreference имеет следующий пример реализации:
namespace detail {
template< class T, class U >
concept SameHelper =...
217 просмотров
schedule
14.06.2023
Как написать концепцию C ++, ограничивающую шаблон до std :: map и std :: unordered_map
Если у меня есть такие шаблоны, которые выполняют простую операцию копирования для примера, но для std::map и std::unordered_map :
template<typename T1, typename T2>
inline std::map<T1, T2> map_copy(std::map<T1,T2> const&...
208 просмотров
schedule
15.05.2023
Условный constexpr на независимом условии
Предположим, у меня есть функция конфигурации, которую должен определить пользователь библиотеки, которая может быть или не быть constexpr .
constexpr int iterations() { return 10; }
// Or maybe:
int iterations() { return...
89 просмотров
schedule
07.07.2023