ICode9

精准搜索请尝试: 精确搜索
  • c – Variadic模板选择更常见的模板而不是重载2019-08-23 21:07:16

    想象一下这段代码: #include <iostream> void PrintInternal() { std::cout << std::endl; } template <typename T, typename...ARGS> void PrintInternal(const T& head, const ARGS&...rest) { std::cout << head << " "

  • c – 如何编写连接两个函数的函数?2019-08-23 19:06:41

    我正在尝试编写一个泛型函数,它连接两个可以用同一组参数调用的函数,但是我遇到了一些麻烦.这是我到目前为止所拥有的. (不编译) //A functor to store the input functions and call them template <typename LEFT, typename RIGHT> struct combine_functions { combine_functi

  • c – 如何将std :: function包装器转换为可变参数函数?2019-08-23 16:06:26

    我有这个非常好的包装,但我希望它接受任意数量的T,S,R,Q,…… template<typename U, typename T, typename S> boost::variant<U, std::string> RunSafeFn2(const std::function<U(const T&,const S&)>& f, const std::string& errMsg, const T& a1, const S

  • c – 形成错误的呼叫的零长度可变扩展2019-08-23 16:05:53

    标准大师的问题. 试图回应another question,我开始怀疑代码的良好构成. 据我所知,以下代码格式不正确 int main () { std::tuple<> a; std::get<0>(a); } 因为当我超出范围[0,sizeof …(Ts)时,对td :: get< I>(t)的调用(当t是std :: tuple< Ts ...>时)是不正确的. )[.

  • 从c中的字符串向量创建元组2019-08-23 13:06:21

    我有一个字符串向量,每个字符串都是将std :: to_string应用于某些基本数据类型(例如char,int,double)的结果.我想要一个函数来将其撤消为适当类型的元组. 我有一个简单的函数模板来反转std :: to_string: template<typename T> T from_string(std::string s) { } template<> int f

  • C迭代折叠运算符中的元组2019-08-23 10:09:22

    我有一个函数,它接受可变数量的对象,每个对象都有一个可以调用带有某个值的回调的函数.我需要调用该函数并在元组中收集值.由于实际函数异步调用回调这一事实很复杂,因此我无法使用简单的包装器将其转换为传统的返回函数. 只要没有重复的类型,这样的东西就可以了: template<class T

  • c – 使用lambda修改由packed参数标识的引用?2019-08-23 10:08:20

    我正在尝试在WIP小“游戏框架”中创建实体组件的一个很好的修改功能.但是,在尝试修改多个组件时,我仍然坚持创建该函数(使用压缩参数) 这是我对单个组件的功能,它可以正常工作并且按我喜欢的方式运行 template <typename C> void mod_comp(Entity ent, std::function<void(C&)> cb

  • 使用C中的附加模板参数扩展模板化结构2019-08-23 10:07:03

    EXAMPLE template< typename T > struct A { }; template< typename T, typename U > struct A : A<T> { }; int main() { A<double> ad; A<int, int> a; } 编译错误 06001 不同的模板名称工作正常: template< typename T > struct A

  • c – 是否可以将引用传递给可变参数模板函数?2019-08-23 06:05:46

    假设,我有一个使用CRTP的基类并提供一个可变参数模板静态成员函数 template<typename derived_task> struct task_impl : library::task { /* some useful functionality implemented using CRTP */ /// static method for spawning a task. template<typename... Args>

  • C 11可变参数模板继承2019-08-23 04:08:50

    我想用可变参数模板编写线性叠加的抽象.为此,我想定义一个表示某种形式的operator()的基类型 template <typename Result, typename... Parameters> class Superposable { public: typedef Result result_t; void operator()(Result& result, const Parameters&...) con

  • c – 根据模板参数生成不同大小的初始化列表2019-07-31 05:09:29

    我有一个包含没有默认构造函数的对象数组T的类.这是一个例子: #include <iostream> struct Param { int x; }; struct A { A(const Param &p) { std::cout << p.x << std::endl; } }; template<class T, int n> struct Array { T data[n];

  • c – 使用单参数模板化构造函数构造引用元组的值元组2019-07-31 05:04:52

    我有一个const引用的元组std :: tuple< const Matrix&,...>我从中构造了一个值元组std :: tuple< Matrix,...>.对于大于1的任何大小的元组,这都可以正常工作:(在线示例:https://godbolt.org/g/24E8tU) #include <tuple> struct Matrix { Matrix() = default; Matrix(Matri

  • c – Variadic模板之谜2019-07-30 00:08:41

    这是可行的代码: template<typename... Args> struct count; template<> struct count<> { static const int value = 0; }; template<typename T, typename... Args> struct count<T, Args...> { static const int value = 1 + count<Args...&g

  • 关于c 11标准中可变参数模板的混淆2019-07-29 04:06:32

    这两个功能有什么区别? template <class ...Types> void f(Types... args...){} template <class ...Types> void g(Types... args){} 解决方法:f完全相同 template <class ...Types> void f(Types... args, ...){} // ^^^^^

  • c – 具有可变参数的外部模板无法编译2019-07-29 02:06:32

    我尝试使用可变参数创建一个extern模板,如: extern template<typename... XS> void log( XS... xs ); 但是gcc 7.2没有编译它,并显示错误: error: expected unqualified-id before ‘<’ token 我检查了c 11中的gcc状态,extern模板应该可以工作,不是吗?解决方法:extern关键字做的

  • c – 从元组派生类2019-07-29 00:04:22

    我有一个像这样的std :: tuple: typedef std::tuple<t1, t2, t3> tuple_t; 现在,我想将t3_tuple转换为类似的元组: typedef std::tuple< T<t1>, T<t2>, T<t3> > derived_tuple_t; 在我的例子中,例如,t1,t2和t3是基元,T是std :: stack.一般来说,假设可能有t4等等. 当然,我的第二个

  • c – 如果函数返回类型为void,我应该如何调用可变参数包中的所有函数?2019-07-28 20:08:47

    我有一个完整的默认可构造的参数包,然后是可调用的对象(如ExampleFunctor),并希望按顺序(从左到右)调用所有这些对象.如果返回类型是除void之外的任何内容,我可以使用初始化列表来执行此操作: struct ExampleFunctor{ void operator()(){someGlobal = 4;} }; template<typenam

  • c – std :: function就像委托模板类一样2019-07-28 18:05:29

    您好我正在尝试编写一个委托类,可以采取类似于标准函数签名的模板参数,并为成员函数指针创建一个委托,如下面的主要部分所示.代码可能过于简单,但我正在寻找的是一个简单而快速的解决方案,尽可能减少开销.我认为如果我可以在没有运行时多态性的情况下获得类中的类型T,那么这个实现

  • c – 可变结构规范2019-07-28 11:05:52

    我像这样定义一个可变结构 template <class T, class... TRest> struct Opa { Opa() { std::cout << "Mutiple-arguments template"; } }; 并希望专门针对具有1个参数的情况进行专门化,如下所示 template <> struct Opa<class T> { Opa() {

  • c – 按大小存储字段的结构2019-07-27 22:06:48

    我想知道如何在C中执行以下操作: 考虑这些类: C1< C2< C3< ......< Cn,Ci< Cj表示sizeof(Ci)<的sizeof(CJ) 我想要一个使用可变参数模板作为Ci序列的结构, OrderBySize< AnySequenceOfCis>,例如:OrderBySize< C1,C2,C3,...,Cn>要么  OrderBySize&LT C2,C1,C3,C4,…,CN&GT ……所有

  • c – Variadic模板方法和std :: function – 编译错误2019-07-27 22:05:52

    参见英文答案 > C++11 does not deduce type when std::function or lambda functions are involved                                    2个 我确定这个错误非常简单而且很愚蠢,但是我看不到它.这是代码: #include <future> template <type

  • C variadic模板:在索引处删除/替换类型2019-07-27 18:08:46

    有办法: 1)删除索引处的项目: // Removes item at index N, e.g. Remove<2, a, b, c, d> results in <a, b, d> template<std::size_t N, typename ...Args> struct Remove { // ??? }; 2)替换索引处的项目: // Replaces item at index N with T, e.g. Replace<2, x,

  • c – Variadic模板功能解压缩顺序2019-07-27 17:05:57

    我有这个代码: template<typename ...T> struct Test { void call(string str) { abc(get<T>(str)...); } template<typename U> string get(string& inp) { string ret{ inp[0] }; inp.erase(0, 1);

  • c – 使用sfinae来检测可变参数模板的基类是否具有特定方法2019-07-27 16:05:29

    我试图“迭代”一个可变参数派生类的所有基类,并调用一个名为“stream”的方法(如果它存在). 要检查方法是否存在,我使用sfinae,它可以工作(参见注释掉的代码).但是当我将它与可变参数模板“迭代”结合起来如果不起作用时,你的错误有点看起来像sfinae部分突然工作不像预期的那样,当

  • c – 如何获取参数包中的元素索引2019-07-27 04:08:34

    如何获取以下内容以将参数包元素的索引放入元组中? template< typename... Ts > class ClassA { public: ClassA( Ts... ts ) : tup( make_tuple( ts, 0 )... ) {} // I would like it to expand to this. // ClassA( T0 ts0, T1 ts1 ) : tup( make_tuple( ts0, 0 ), m

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

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

ICode9版权所有