Вопросы по теме 'template-argument-deduction'
Вывод аргументов шаблона
В настоящее время я столкнулся с проблемой, которую не смог решить сам. В основном то, что я пытаюсь сделать, - это реализовать на C ++ некоторое поведение, подобное linq.
Начну с кода в шапке:
template<typename T, template<class = T>...
4960 просмотров
schedule
25.12.2022
Вывод шаблона указателя на метод С++ не компилируется при нацеливании на x86, но работает с x64
У меня есть этот пример кода:
struct A
{
int foo() { return 27; }
};
template<typename T>
struct Gobstopper
{
};
template<>
struct Gobstopper<int(void)>
{
Gobstopper(int, int) { } // To differentiate from general...
541 просмотров
schedule
26.07.2023
Частичная спецификация функции шаблона в C++ работает, но почему?
Я пытаюсь выяснить, является ли частичная спецификация шаблонных функций частью стандарта С++ или это что-то специфичное для компилятора.
Под частичной спецификацией я подразумеваю указание только тех типов, которые компилятор не может вывести....
1769 просмотров
schedule
14.07.2022
Ошибка вывода типа аргумента шаблона с C++ 11 ‹type_traits›
Я пытаюсь понять, как использовать C++(11) <type_traits> .
Вот моя тривиальная тестовая программа
#include <type_traits>
template<class U, class S>
inline U add(typename...
2649 просмотров
schedule
03.10.2022
Шаблоны С++: подскажите аргументы шаблона компилятору?
У меня есть следующее определение класса:
template<std::size_t N>
class Vector {
public:
template<typename T>
Vector(std::enable_if<is_foreach_iterator<T>, T>::type& it_begin, T& _end) {
// At this...
866 просмотров
schedule
13.06.2022
Что такое невыведенный контекст?
Я наткнулся на " Почему аргумент шаблона дедукция здесь не работает? ", и ответы можно свести к" Это невыведенный контекст ".
В частности, первый говорит, что это такая вещь, а затем перенаправляет на стандарт для «деталей», а второй цитирует...
6369 просмотров
schedule
21.06.2023
Почему этот вывод шаблона не работает
Этот код не будет компилироваться с clang++ 6.0 или g++ 4.9.1 (код не имеет значения, но это минимальный пример, который позволяет это сделать):
#include <forward_list>
template<typename T>
T getItem(typename...
202 просмотров
schedule
08.01.2023
Не могу определить тип шаблона
Я пытаюсь передать итератор в качестве параметра шаблона методу шаблона, но компилятор жалуется, что:
error C2783: 'void Test::Assert(std::vector<T>::const_iterator)':
could not deduce template argument for 'T'
Код, вызывающий ошибку:...
1394 просмотров
schedule
02.05.2024
Почему для этого указателя на функцию не удается вычислить аргумент вариативного шаблона?
В следующем минимальном примере S::foo работает, но S::bar не работает.
Единственная разница - это порядок пакетов параметров Ts и Us .
struct FPtr и S::lol - лучший обходной путь, который я нашел, но его довольно неудобно...
476 просмотров
schedule
24.07.2022
Семантические ошибки с разрешением перегрузки для init-list-as-function-argument и шаблонов
Я настроил Eclipse CDT (Eclipse v4.5.0, идентификатор сборки 20150621-1200; CDT v8.7.0.201506070905) для использования C++11 в постоянном процессе сборки, но некоторые выражения по-прежнему вызывают семантические ошибки, даже если они правильно...
109 просмотров
schedule
21.06.2023
Неявное преобразование может произойти во время подстановки шаблона?
Я всегда думал, что с шаблонными функциями не может произойти неявное преобразование, и типы аргументов должны точно соответствовать шаблонным типам параметров, иначе вывод шаблонного аргумента не удастся.
Что ж, кажется, я ошибся.
Рассмотрим...
70 просмотров
schedule
04.10.2022
Вывод аргументов шаблона для пакета параметров функции, за которым следуют другие параметры
Является ли вычет для f1 и f2 неправильно?
template<class... T, class U>
void f1(T..., U){}
template<class... T>
void f2(T..., int){}
int main()
{
f1(1);
f2(1);
return 0;
}
g ++ принимает оба, clang принимает...
382 просмотров
schedule
06.04.2022
Шаблоны, массивы и постоянные выражения
Рассмотрим код ниже:
template<char>
struct S { };
template<int N>
constexpr auto f(const char (&ref) [N]) {
return S<ref[0]>{};
}
int main() {
constexpr auto v = f("foo");
(void)v;
}
Он не компилируется,...
77 просмотров
schedule
10.03.2023
Невозможно вывести параметр шаблона "N"
Я попытался свести это к минимуму:
#include <array>
template <std::size_t N>
void f(int, std::array<int, N> const & =
std::array<int, 0>()) {
}
int main() {
f(10);
}
array_test.cpp:4:6: примечание:...
255 просмотров
schedule
31.01.2023
Руководство по дедукции и вариативные шаблоны
Рассмотрим следующий код:
#include <tuple>
#include <iostream>
template <class T>
struct custom_wrapper
{
template <class Arg>
custom_wrapper(Arg arg): data(arg) {}
T data;
};
template <class Arg>...
1169 просмотров
schedule
03.03.2023
Почему вывод класса шаблона С++ 17 не работает, когда я указываю некоторые параметры шаблона?
C++17 представил вывод аргументов шаблона класса . Хотя в большинстве случаев это не более чем синтаксический сахар, бывают случаи, когда он действительно приходит на помощь, особенно в общем коде, например в этом случае .
Еще одним хорошим...
819 просмотров
schedule
25.06.2022
Соответствуют ли определяемые пользователем руководства по выводам, включающие параметр шаблона шаблона в качестве шаблона для стандарта руководства
Фон
Вчера я задал вопрос о гарантиях удержания руководит использованием в случае параметров шаблона шаблона . Я был очень удивлен, когда Барри изменил свой ответ на подтверждение соответствия кода стандарту. Мое удивление на самом деле исходит...
593 просмотров
schedule
25.01.2023
передача указателя перегруженной функции в качестве аргумента перегруженной функции шаблона
Я пытаюсь заставить компилятор вывести правильный шаблон функции. Учитывая следующий код, выводится правильная шаблонная функция...
class TestBase{};
template <typename c, typename RT, typename T0>
inline void CallF( RT( c::*M )(T0),...
204 просмотров
schedule
26.05.2023
Вариативный шаблон, нет соответствующей функции для вызова
Я пытаюсь использовать вариативный шаблон для рефакторинга части моего кода, но у компилятора есть ошибка «нет соответствующей функции для вызова». Ниже приведен упрощенный вариант (может не имеет смысла для функционала, но пример для воспроизведения...
1047 просмотров
schedule
28.06.2023
Не удается вывести параметр шаблона при использовании вспомогательной структуры шаблона
Я хотел бы, чтобы некоторые функции шаблона работали с существующими помощниками шаблонной структуры. Однако вывод аргумента шаблона не удается. Есть ли обходной путь?
Пример
Этот перегруженный operator << компилируется и работает:...
866 просмотров
schedule
14.12.2022