Вопросы по теме 'type-deduction'
выведены конфликтующие типы для параметра «T» для универсальной ссылки
Я тестирую универсальную ссылку со следующим кодом:
template <typename T>
vector<T> attach_(vector<T> xs, T&& x) {
xs.push_back(std::forward<T>(x));
return xs;
}
int main() {
int k = 2;...
8904 просмотров
schedule
29.07.2022
Почему существует разница между шаблоном и автоматическим выводом типа для краевого случая std::initializer_list?
По сути, в C++11 существует три типа вывода типов:
шаблоны
auto
decltype
В большинстве случаев вывод типа auto и шаблонов, по-видимому, действует одинаково. Но есть один случай - когда мы устанавливаем переменную auto в...
51 просмотров
schedule
25.11.2022
Каковы правила вывода типов для auto*?
Каковы правила вывода типов для auto* ?
Рассмотрим следующее:
int x = 64;
int* px = &x;
auto* v1 = &x; // auto => ??? ok v1 is int* ...
auto* v2 = px; // auto => ??? is v2 int* ?
auto* v3 = &px; // auto =>...
1350 просмотров
schedule
20.10.2022
Вычет функции
Допустим, у нас есть такой шаблон класса:
template<typename F>
class A
{
public:
template<typename... Args>
A(F f, Args... args)
{ /* Do something... */ }
};
И теперь я хочу использовать его как-то так:
A<int(int)>...
1611 просмотров
schedule
30.11.2023
Определите тип объявления
Я пишу макрос, который принимает объявление в качестве единственного аргумента. Можно ли определить тип объявления внутри макроса, не разделяя один аргумент на отдельные аргументы type и identifier ?
#define M(declaration) \
declaration;...
95 просмотров
schedule
29.11.2023
Установление связей между типами и значениями
У меня есть реализации арифметики на уровне типов, способные выполнять некоторую арифметическую проверку времени компиляции, а именно <,>,= двумя способами:
простая реализация
строгая реализация
С ними у меня может быть функция...
85 просмотров
schedule
20.10.2022
Как работает вывод типа в этом примере Docopt?
Взгляните на этот код, используя библиотеку docopt:
const USAGE: &'static str = "...something...";
#[derive(Deserialize)]
struct Args {
flag: bool,
}
type Result<T> = result::Result<T, Box<error::Error + Send + Sync>>;...
111 просмотров
schedule
22.08.2022
Почему компилятор требует указания типа?
Я реализовал шаблон класса, который отвечает за построение одного типа (следует шаблону построителя). Конструктор построителя используется для вывода двух типов.
Ниже приведен пример, демонстрирующий проблему (с использованием проводника...
114 просмотров
schedule
27.07.2022
Непонимание вариативных шаблонов и вывод типа шаблона
Я компилирую C++17 с кодом, подобным этому образцу:
#include <iostream>
#include <iterator>
class Foo {};
template <typename... Args,
typename ostream_type = ::std::basic_ostream<Args...>,
typename...
36 просмотров
schedule
27.01.2024
Невозможно определить тип элемента шаблонного класса
Вдохновленный этим примером, а именно этим конкретным фрагментом кода
// ...
template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;
// ......
62 просмотров
schedule
02.01.2024
вывести тип переменной-члена
Отредактировано: я забыл, что обратный вызов захватывает указатель this на outer .
Я пытаюсь инициализировать некоторый класс и его член.
Класс не шаблонен.
Его элемент является шаблонным. Он принимает тип функции по шаблону для...
124 просмотров
schedule
23.03.2024