Описание тега result-of
NoneStd::result_of - это метафункция C++11, которая предоставляет результат вызова типа функции с заданным набором типов аргументов.
1
ответ
Как я могу использовать result_of вместо decltype?
В этом ответе я создаю черту типа: template<typename T> using to_string_t = decltype(to_string(declval<T>())); Это работает просто отлично, но я изначально намеревался использовать result_of и теперь меня раздражает, что я не могу понять…
02 июн '15 в 11:43
2
ответа
gcc 6.1 std::result_of ошибка компиляции
Рассмотрим небольшой автономный вариант использования, в котором я хочу определить, является ли тип полным или неполным использованием #include <type_traits> namespace { struct foo { template<class T, std::size_t = sizeof(T)> std::false_…
02 мар '17 в 08:03
8
ответов
Метапрограммирование: ошибка определения функции определяет отдельную функцию
В этом ответе я определяю шаблон на основе типа is_arithmetic имущество: template<typename T> enable_if_t<is_arithmetic<T>::value, string> stringify(T t){ return to_string(t); } template<typename T> enable_if_t<!is_arithme…
12 май '15 в 11:45
2
ответа
Разница между std::result_of и decltype
У меня есть некоторые проблемы с пониманием необходимости std::result_of в C++0x. Если я правильно поняла, result_of используется для получения результирующего типа вызова функционального объекта с определенными типами параметров. Например: template…
22 апр '10 в 09:45
1
ответ
std::result_of на std::bind не компилируется на clang++ 3.4
Следующий код компилируется с использованием g++-4.8, но не при использовании clang 3.4. #include <type_traits> #include <functional> struct A { template <typename Continuation> bool operator()( //const Continuation & continuat…
24 мар '14 в 14:37
2
ответа
Использовать invoke_result с типом аргумента void?
Я пытаюсь сделать следующее: struct Unwrapper { template<typename T> auto operator()(const T& arg, std::enable_if_t<isPrimitive<T>, void>* = nullptr) {return arg;} template<typename T> auto operator()(const T& arg, st…
07 янв '19 в 11:10
1
ответ
result_of вызова функции-члена параметра шаблона
Мне нужно получить результат функции-члена параметра шаблона класса. К сожалению, я связан с C++03 и не могу использовать decltype, но я могу использовать tr1::result_of. Я пробовал следующий код, но он не работал с моим компилятором (gcc 4.3, я так…
22 май '14 в 09:02
1
ответ
Использование std::result_of<> для метода члена типа члена
Я работаю с типом HashMap, который не определяет свой KeyType в качестве открытого члена, только ValueType. Способ получить KeyType будет использовать std::result_of с HashMap<>::Entry::GetKey() метод. Я не могу заставить его работать в шаблон…
27 апр '18 в 18:20
2
ответа
Поток C++, принимающий ссылочный аргумент, не скомпилирован
#include<iostream> #include<thread> using namespace std; void f1(double& ret) { ret=5.; } int main() { double ret=0.; thread t1(f1, ret); t1.join(); cout << "ret=" << ret << endl; } Приведенный выше код не может быт…
31 мар '16 в 19:10
2
ответа
result_of для объекта-члена с cv-квалифицированным аргументом
Учитывая следующие декларации: struct MyClass { }; typedef int MyClass::*Mp; На обоих gcc 6.2 и компиляторе Clang я пробовал, result_of<Mp(const MyClass)>::type доходность int&&, Резюме моего вопроса: почему int&& и не либо con…
28 авг '16 в 00:07
3
ответа
C++11 result_of вывести мой тип функции не удалось
Я пробовал программу ниже: #include<type_traits> using namespace std; template <class F, class R = typename result_of<F()>::type> R call(F& f) { return f(); } int answer() { return 42; } int main() { call(answer); return 0; } "…
29 июн '16 в 01:42
1
ответ
C++11 применяет result_of к функции-члену, не удалось, почему?
Я получил следующий код в качестве эксперимента: int f1() { return 0; } struct Bar { Bar() = delete; int f() { return 0; } int operator()() { return 1; } }; int main() { decltype(f1()) x = 3;//f1() is expression result_of<decltype(&f1)()>:…
21 июн '16 в 09:33
0
ответов
Как я могу использовать std::result_of для возврата типа функции вместо void
Я пытаюсь получить возвращаемый тип функции, с которой я связываюсь. В этом случае я ожидал увидеть возвращаемый тип GetFactorialResult (INT). #include <iostream> #include <boost/core/demangle.hpp> #include <typeinfo> namespace { c…
04 июн '18 в 15:17
1
ответ
Использование std::result_of с перегруженным методом
Я добавил перегруженный метод в существующий класс, что теперь вызывает ошибку компиляции в наших модульных тестах. Я повторил проблему с помощью следующего кода: #include <type_traits> #include <string> class Foo { public: Foo() {}; int…
01 мар '17 в 12:23
3
ответа
Предотвращение повторения для SFINAE Различение между типами возврата void и non void
Некоторые универсальные функции, управляющие кодом, должны работать по-разному в зависимости от того, имеет ли функция возвращаемое значение или нет. Например, заимствуя проблему из этого вопроса, скажем, что нам нужно написать time_it Функция прини…
22 мар '16 в 16:33
1
ответ
Как использовать std::result_of, когда возвращаемое значение является типом шаблона?
Я пытаюсь использовать result_of для случая, когда Callable возвращает тип шаблона и получить следующую ошибку (clang++). Я также включил простой случай, когда все работает отлично. Ошибка: main.cpp:22:50: note: candidate template ignored: could not…
05 ноя '16 в 02:20
1
ответ
Нужно 'typename' перед 'std::result_of<_Signature>:: type', потому что 'std::result_of<_Signature>' является зависимой областью действия
Я не могу найти хорошего решения. У меня есть кусок кода: #include <iostream> #include <future> #include <memory> #include <functional> #include <cstddef> #include <tuple> #include <typeinfo> #include <qu…
15 окт '16 в 08:52
1
ответ
Получить возвращаемое значение для шаблона лямбда-параметра, как упростить код?
Это мой трюк: template<typename F, typename TArg> auto get_return_value(F * f = NULL, TArg * arg = NULL) -> decltype((*f)(*arg)); Пример использования: template<typename F, typename T> decltype(get_return_value<F,T>()) applyFtoT…
11 дек '11 в 07:03
1
ответ
Как определить тип возврата оператора индексации данного типа массива с boost?
Какую сигнатуру типа мне нужно использовать, если я хочу определить тип, возвращаемый оператором индекса (массива) с использованием boost? Обратите внимание, что массивы, для которых я буду использовать это, не содержат typedefs и являются сторонним…
16 авг '10 в 16:50
2
ответа
C++11: std::result_of<> аргумент шаблона vs std::function<>
Я сделал некоторые исследования std::result_of<>и я знаю, как это используется на высоком уровне, но я все еще довольно запутался в этой волшебной вещи. Так что, если я правильно понимаю, форма R (Args..) должен интерпретироваться компилятором…
13 июн '18 в 04:43