metaprogramming 相关问题

元编程是重新编程编程环境的能力,就像宏或元类一样。

Julia宏可用于基于特定的函数实现生成代码吗?

我对Julia来说还很陌生,我正在学习元编程。我想编写一个宏,该宏在输入中接收一个函数,并根据...

回答 2 投票 3

lambda函数将其参数用作调用模板函数的模板参数

以下是无法编译的示例代码。我们使用迭代函数来迭代某个范围并运行lambda回调函数。迭代函数将传递一些指示(i ....

回答 1 投票 0

在打字稿中,我可以使用键列表从对象中删除未定义和空类型吗?

我创建了一个函数,该函数执行运行时要求检查null和undefined是否为true:function hasFields ((obj:T | T [],... fields:(keyof T)[]):boolean { const ...

回答 1 投票 1

继承HTTParty模块

如何继承HTTParty模块来设置一些默认值?模块SuperClient包含HTTParty头'Auth'=>'Basic'终端类ServiceApiClient包含SuperClient头'X -...

回答 1 投票 0


用于通过haskell元编程进行跟踪/记录的提取上下文

在我们的haskell代码库中,业务逻辑与跟踪和日志记录代码交织在一起。这可能会使业务逻辑模糊,并使之难以理解和调试。我正在寻找有关如何...

回答 2 投票 6

什么是Ruby模块。包括在内?

我试图更好地理解Ruby中的元编程,并且对Module.included是什么感到困惑?我目前的理解是,每当模块...

回答 1 投票 0

为什么`object`是`type`的实例,而`type`是`object`的实例?

我对Python 3中的对象和类型类有些困惑。也许有人可以消除我的困惑或提供一些其他信息。我目前的理解是,每个类(...

回答 3 投票 11

基于类模板参数值禁用成员函数

我希望有一个基于类的模板参数的值来禁用/启用成员函数的类。我有以下内容:枚举MyType {type1,type2};模板

回答 1 投票 0

应用代理陷阱

我意识到,如果要在Proxy中“应用”陷阱,则Proxy的目标必须是一个函数。我需要目标成为对象。我想知道目标对象是否可以具有某些特殊的“属性” ...

回答 1 投票 0

可以使编译器陷入无限循环的编译时计算的存在

是否存在可以使编译器陷入无限循环的这种编译时计算?无限循环可能不会消耗增加的内存吗?否则可能由于内存不足而停止。

回答 1 投票 0

模板类中构造函数的条件定义

我想编译以下内容:#include template class C {public:C(){} C(const C&that){}};无效foo(const C &c); ...

回答 1 投票 0

Rails迁移的块中的列定义如何工作?

Throughout Rails中有一个习惯用法,可通过块变量查询参数。例如在迁移中。 Rails中的典型迁移类似于此类CreateUsers

回答 1 投票 2

ruby自定义访问器的工作原理

因此,下面class_eval中的方法为运行时定义的属性动态创建访问器。例如,它可以用于创建具有从配置文件读取的属性的配置对象...

回答 1 投票 0

卡在C ++元编程中

[我正试图通过一本名为《实用C ++元编程》的书来进入TMP,但我一直努力尝试推导第一个示例。我的目标是使用... ...进行模板化的函数调用。

回答 1 投票 0

在运行时获取模板元编程编译时常量

背景请考虑以下内容:模板 struct Fibonacci {枚举{value = Fibonacci :: value + Fibonacci :: value}; };模板<> ...

回答 7 投票 43

在C ++中创建编译时键值映射

我试图用C ++创建一个编译时简单的键-值映射。我正在使用/ std:c ++ 11进行编译。 (使用IAR编译器嵌入代码,目前仅支持cpp ++ 11)我已经了解到...

回答 1 投票 1

是否有办法告诉(拦截)类属性的修改?

Python的新手,试图解决一个需要实现一个类装饰器的问题,该装饰器将跟踪其类和实例属性的更改。装饰者需要添加一个get_change ...

回答 1 投票 0

是否有一种方法可以从其完整类型中获取模板类的类型?

我需要一个对于给定完整类类型返回其模板的元函数(例如f > :: type或f > :: type结果为foo)。或者它可能在f [ ] >>] >> f<foo<bar>>::type or f<foo<baz>>::type results in foo 不完全是(请参见is-an-alias-template-considered-equal-to-the-same-template,您可以执行以下操作: template <typename T> struct template_class; template <template <typename> class C, typename T> struct template_class<C<T>> { template <typename U> using type = C<U>; }; 或者它可能在f<foo<bar>, foo<baz>>::value上返回true,在f<foo<bar>, not_foo<baz>>::value上返回false [即使是有限的,也更容易将专业化为is_same: template <typename, typename> struct has_same_template_class : std::false_type{}; template <template<typename> class C, typename T1, typename T2> struct has_same_template_class<C<T1>, C<T2>> : std::true_type{}; 可能您想要这样的东西: #include <type_traits> template<class> struct foo; template<class> struct not_foo; struct bar; struct baz; template<class, class> struct trait : std::false_type {}; template<template<class> class T, class S1, class S2> struct trait<T<S1>, T<S2>> : std::true_type {}; static_assert( trait<foo<bar>, foo<baz> >::value); static_assert( trait<not_foo<bar>, not_foo<baz>>::value); static_assert(!trait<foo<bar>, not_foo<baz>>::value); static_assert(!trait<foo<bar>, not_foo<bar>>::value); Demo

回答 2 投票 2

类型列表不想编译

我正在尝试实现某种类型列表。我想知道为什么以下代码无法编译。我认为它至少应该编译。 #include #include ] >>

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.