metaprogramming

    2热度

    5回答

    说我有一个功能f()类型: struct A { void f() {} }; 和两个向量:(指针的傻数量只是为了戏剧效果) std::vector<A*> x; std::vector<A*******> y; 我寻找能够写作的方式: deep_deref(std::begin(x)).f(); deep_deref(std::begin(y)).f(); 换句话说,我要的是搭

    -3热度

    1回答

    我想对我的rails代码中运行的每种方法都做一些处理,因为我需要一些关于运行时方法的信息。我正在使用set_trace_func来做到这一点。里面set_trace_func我们收到绑定: set_trace_func proc { |event, file, line, id, binding, classname| printf "%8s %s:%-2d %10s %8s\n", e

    0热度

    1回答

    我真的很喜欢Go,但让我为if-err地狱而疯狂,以及在Go代码中使用其他语言同步数据类型时的情绪。对于C/C++,我可以轻松地使用宏来处理这些东西,而Go开发人员说Go的惯用解决方案是代码生成,但是我没有找到任何现成的解决方案。 所以基本上,我需要的是像 阅读源,每一个类型的使用检查,如果它是在特殊的配置文件中列出。如果是,则使用config中的一个进行更改。 阅读源代码,查看每个函数是否在配置

    3热度

    3回答

    合同:函数将函数作为参数并返回函数[即已修改(或相同)版本的函数]。例如,通过函数,这里是square。 @floatify def square(n): return n*n 是装饰者是否只返回传递函数的装饰版本,但没有别的?

    3热度

    1回答

    我想用升压花生成这个最终代码: template < typename ... Ts > void foo(Ts ... data) { constexpr auto tuple = hana::make_tuple(data...); //Code that I need to be generate container_c[tuple[0_c]].foo2(

    0热度

    1回答

    我想创建一个存储各种块的DSL,然后可以调用它们。我希望这是一个可以重复使用的模块,可以包含在多个类中。 我想出了一种使用类变量的方法,但rubocop抱怨并且说我应该使用类实例变量。我无法弄清楚这样做的方法。可能吗? module MyModule def self.included(base) base.extend(ClassMethods) end

    1热度

    1回答

    什么是最优雅的方式(可能是C++ 17-way)来检查两个不同类中定义的两个方法的签名是否完全相同? 例如: template< typename ...Ts > struct A { void f(Ts...); }; template< typename ...Ts > struct B { void g(Ts...); }; static_assert

    2热度

    1回答

    我最近几个小时一直在敲墙头,试图弄清楚为什么有些部分模板专业化失败,我真的可以使用一些帮助。 基本上,我正在研究一些依赖在编译时知道矩阵大小的代码,但我试图通过模板来做到这一点。似乎有使用类型组合的问题,我真的不明白。通过图示的方式,考虑以下(略无意义)代码: template <typename T> struct type1 { typedef bool bar; }; template <

    1热度

    2回答

    是否可以编写一个元函数,如果某种类型包含多个特定类型的事件template<class> class Decor,则返回该类型,但不显示类Decorator。 的一个例子是以下类型 A<Decor<T<B<A<Decor<C>>>>>> 转换成 A<T<B<A<C>>>> 我们假设最终类型的结构的确是一个正确的类型,但我们不输入型的结构假设任何事情。可能会出现这样的情况:用于构建输入类型的某些类型

    0热度

    1回答

    表情,我想形成像 julia> ex = :(a[$i,$j] + b[$i,$j]) 表情,因为我感兴趣的书面方式一个程序,它能够写方程的系统中,用户只给出了结构然后茱莉亚明确写入了涉及的代码块。更一般地,我想嵌入一个表达式的功能,像 julia> ex = :(a[$myfunc(i,j),$j] + b[$i,$j]) 在评估的第一行代码,我得到 ERROR: UndefVarErr