ICode9

精准搜索请尝试: 精确搜索
  • c – 使用非const表达式作为模板参数2019-09-02 14:05:56

    这是对How do I get the argument types of a function pointer in a variadic template class?的跟进 我有这个结构来访问可变参数模板的参数: template<typename T> struct function_traits; template<typename R, typename ...Args> struct function_traits<std::function<

  • c – Variadic模板和“预期的类型”错误2019-09-02 07:06:29

    我正在工作(主要是为了学习目的)自己实现元组,我刚遇到一个问题.我有以下代码: namespace Rose { template<typename T> struct RemoveReference { typedef T Type; }; template<typename T> struct RemoveReference<T &> { typedef

  • c – 如何使用variadic size_t模板将多个std :: tuple_element作为函数参数进行协调2019-08-31 07:07:25

    我想创建一个函数,通过一次调用更改元组内的多个值. template<class... Args> class EventN { public: std::tuple<Args...> mArgs; EventN(Args... args) : mArgs(args) {} EventN() {} template<size_t N> void set(typename std::tuple_element<N-1,Tuple>::ty

  • 创建一个C std :: tuple投影函数2019-08-30 22:07:50

    我正在寻找std :: tuple的投影函数.即,该函数接收整数列表作为模板参数,并返回仅具有这些索引处的值的元组. 例如,考虑我有一个元组元组< int,String,char,float> t,然后调用项目< 1,3>(t)将导致元组类型元组< String,float>的元组. 当然,关键似乎是递归模板.但是,我无法让它工作.

  • c – 从参数包中删除最后一个参数2019-08-30 15:05:01

    今天,在第100次使用相同的模板时,我想到了引入简单替换的想法. 代替 QHash<int,QHash<int,QHash<int,int> > > 现在应该是: MultiKeyHash<int,int,int,int> (不要与QT的QMultiHash类混淆). 前三个参数是键的类型,最后一个参数是值的类型. MultiKeyHash<TKey1,TKey2,....,TKe

  • 将C字符串解析为元组2019-08-29 15:11:22

    我正在开发一个简单的CSV解析器,它将文件的行存储在元组中.如果不是因为文件内的行上的条目数是变量以及它们的类型,这将是一件容易的事.因此,线条可能是这样的: 1,2.2,你好,18,世界 解析器应该能够像这样工作: ifstream file("input.csv"); SimpleCSVParser<int, float, string, in

  • c – “解包”一个数组以调用具有可变参数模板的函数2019-08-29 13:07:29

    我正在使用ben strasser C fast csv解析器:https://github.com/ben-strasser/fast-cpp-csv-parser.它使用可变参数模板将列值传递回处理csv数据的while循环: io::CSVReader<2> in(csv_filename); double x, y; while(in.read_row(x,y)) { //code with x and y } 这将调用CSVRea

  • C模板参数作为函数调用名称2019-08-28 21:17:50

    在C中,可以做出这样的事情: class A { public: template <typename ClassType, typename MethodName, typename ...Args> static func() { ClassType t = GetPtr<ClassType>(); t->MethodName(GetArg<Args>()...); } } A::func<B,

  • c – 在lambda中捕获参数包时,某些int会丢失其值2019-08-28 15:09:13

    所以我有一个可变参数模板类,它有一个方法,用于在lambda中捕获模板的参数.后来叫lambda.问题是,无论是在包的前面还是后面,它都会失去价值. 这是一个简化的例子: #include <iostream> #include <functional> void doPrint() {} template <typename Arg, typename... Args> void d

  • c – 带有const引用的可变参数模板2019-08-28 15:08:36

    我的项目使用自定义分配器,以下列方式构造对象: template <typename T, typename... Args> T* create(Args... args) { T* object = // request "bare" memory // call object constructor return new(reinterpret_cast<void*>(object)) T(args...); } 有一个类,包含

  • c – 比较两个类型的多重集以获得相等性2019-08-28 14:07:02

    由于this问题似乎没有涵盖所有有用的案例,我决定填补我的这个小问题的空白.如果两个类型的多个集合相等,有没有办法回答? #include <tuple> #include <type_traits> template <typename, typename> struct type_multiset_eq : std::false_type { }; template <typename ... Types

  • c – 变体:没有用于调用’get’的匹配函数2019-08-28 10:06:14

    这是我的代码: #include <iostream> #include <variant> #include <vector> class A { public: virtual void Foo() = 0; }; class B : public A { public: void Foo() override { std::cout << "B::Foo()" << std:

  • c – 为什么变量模板与非变量模板不同,只有一个参数?2019-08-28 06:08:53

    这段代码编译得很好: template <typename T1> struct Struct { }; struct ConvertsToStruct { operator Struct<int>() const; }; template <typename T> void NonVariadicFunc(Struct<T>); int main() { NonVariadicFunc<int>(ConvertsTo

  • c – std :: array的演绎指南2019-08-28 03:08:11

    我通过书C模板独特的quide,我试着理解std :: array的演绎指南是如何工作的. 关于标准的定义,以下是声明 template <class T, class... U> array(T, U...) -> array<T, 1 + sizeof...(U)>; 例如,如果在main中创建一个数组 std::array a{42,45,77} 如何进行演绎? 谢谢解决方法:

  • c – SFINAE和可变参数模板类2019-08-28 01:05:18

    我正在创建一个继承自可变数量类的C类.定义了这些类的列表,例如:A,B.在C类的功能中,我需要从所有基类调用函数,但是对象可以是C< A,B>. ,C A或C B是H.所以,如果我将在C< B>中调用A类函数.我会收到一个错误.以下是类的示例以及我如何尝试解决问题: class A { int a;

  • c – 广义混合2019-08-26 14:05:36

    我正在写一些代码,我有一个类可以接受mixins作为可变参数模板参数.但是,我还需要mixins才能通过CRTP习惯用法访问基类.这是一个最不能满足我想要的例子: template <template <class> class... Mixins> class Foo : Mixins<Foo<Mixins...>>... {}; 但是,我可能传递给Foo的mixin通常

  • C函数:没有参数的可变参数模板2019-08-26 09:07:38

    我不确定这个问题是否已经得到解答.但它在这里: 我想知道是否有可能做类似的事情 template<typename...classes> void createObject(){ //pass each type into my template function wich takes one type only. } 我真的不明白它是如何工作的.我无法提供任何函数参数的原因是

  • c – 扩展可变参数模板函数会导致分段错误2019-08-25 19:09:24

    我正在研究关于Variadic模板的新C 11功能,所以我写了一个有趣的模板功能: template <typename T> void fun(T& a) //Base to stop the recursion { std::cout << a; }; template <typename... Types> void fun(Types... args) { fun(args...); }; 模板编译得很好但是当我在主

  • C variadic模板替换typelist2019-08-25 14:14:05

    我想利用可变参数模板来替换下面的标准类型列表代码.另外,请注意,这使用int作为类型.我正在尝试使用C 11定义的强类型枚举,因此我想用模板参数类型替换int HEAD. template <int HEAD, class TAIL> struct IntList { enum { head = HEAD }; typedef TAIL tail; }; struct IntL

  • c – 接受lambda的Variadic模板函数2019-08-25 03:06:50

    我试图理解我在下面的代码中得到的编译器错误.我有一个variadic模板函数接受lambda 使用指定的类型,并尝试调用该函数导致模板由于不匹配而不被视为有效候选. #include <functional> template<typename ... ResultTypes> void executeWithResultHandler(std::function<void (Resu

  • c – 推送和弹出std :: tuple的第一个元素2019-08-24 02:08:02

    我正在用这种方式在C中编写一个带有可变数量的参数(和不同类型)的函数 template<typename ...Ts> void myFunction(Ts ...args) { //create std::tuple to access and manipulate single elements of the pack auto myTuple = std::make_tuple(args...); //do st

  • c – 具有模板函数名称和传递参数以及返回值的可变参数模板2019-08-24 01:06:57

    从this问题开始,我一直在尝试创建一个模板函数,该函数调用其mixin的所有同名方法.这已在前一个问题中完成并得到验证. 现在我试图获取SensorType ::的返回值 分析: #include<iostream> #include <string> struct EdgeSensor { void update(int i) { std::cout << "EdgeSensor:

  • c – 如何封装/隐藏可变参数模板参数2019-08-24 00:04:39

    考虑 template< typename A, template<typename, typename...> class B, typename C = default_type, typename ... D > struct D : B<A,D...> { /*text*/ }; 现在当可变参数D不为空/ void时,即使需要default_type,也必须

  • c – 可变参数模板参数包转发中的语法差异2019-08-23 23:05:52

    在使用可变参数模板时,我遇到了两种不同的方式来编写对std :: forward的调用,但是我想知道两种语法之间的实际区别是什么? template<typename... T> void one(T&&... args) { foo(std::forward<T&&...>(args...)); } template<typename... T> void two(T&&... args) { foo(

  • c – 创建一个像std :: integral_constant这样的容器2019-08-23 22:06:46

    我想创建一个std :: integral_constant的“容器版本”.这是一个使用element-type和non-type参数进行参数化的类型: enum class A { a = 1 << 0, b = 1 << 1, c = 1 << 2 }; template<typename T, T... Values> struct static_container final {}; template<type

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有