macros 相关问题

***不要使用VBA / MS-Office语言。请改用相应的[vba]标签。***宏是一种规则或模式,用于指定某个输入序列(通常是一系列字符)应如何映射到输出序列(通常也是一系列字符),具体如下:一个确定的程序。

在 Julia 宏中用字符串替换变量名称

我正在开发一个项目,需要在 Julia 中创建一个宏,该宏接受 Julia 代码表达式、变量名和字符串作为输入,并返回与指定变量相同的表达式

回答 1 投票 0

过了特定日期后,如何冻结公式中的单元格值?

我有一系列单元格(Sheet1!E3:E55),它们使用公式从不同工作表(Sheet2!C7)上的特定单元格中提取计算出的完成百分比。 我想要...

回答 1 投票 0

如何组合两个宏来初始化 C 中的字符串数组?

我正在使用 C 语言中的两个宏,并希望将它们组合起来以初始化字符串数组。以下是有问题的宏: #定义 FOREACH_T(操作) \ 行动(“T1”,1)\ 行动(&q...

回答 1 投票 0

如何在编译时计算复杂的函数?

我需要获取小端二进制数据,因此在大端计算机上,我通过这样做将其转换为小端 布尔 IsBigEndian() { 整数 i = 1; 返回 ((*reinterpret_cast(&...

回答 1 投票 0

从数字形成#include 文件名

通过 C++ 编译器的 -D 选项给定一个数字宏作为输入,我可以形成一个文件名以与 #include 语句一起使用吗?例如,目前我可能有: #include“数据/1024_cadr....

回答 1 投票 0

有点奇怪的宏中的 SBCL 类型推断问题

我正在尝试使用下划线 (_) 创建 lambda 的简写,如下所示: (defmacro _ (&其余主体) ...

回答 2 投票 0

是否可以使用宏编写以下C/C++代码?

我有下面的 C/C++ 代码 - 常量 int O[N] = {1110, 1109, 1107, 1110, 1112, 1111, 1110, 1111, 1108, 1112, 1110, 1111}; 整数 L[N]; 对于 (int i = 0; i < N; i++) { L[i] = (int)ceil(log2(O[i]))...

回答 1 投票 0

使用带有参数的宏时得到意想不到的结果

#包括 #define big(a, b) a > b ?甲:乙 #define swap(a, b) temp = a; a = b; b = 温度; int main() { int a = 3,b = 5,温度 = 0; 如果 ((3 + 大(a, b)) > b) 交换(...

回答 1 投票 0

使用具有(重复)主键的行将列中的值返回到不同的行

我需要一种方法从由重复键定义的行返回数据,并使用唯一键在单独的工作表中的不同列中返回这些行中的数据。 我正在处理一个大文件...

回答 1 投票 0

紧急请求解决:宏工作簿中的“运行时:错误 9”

我们目前面临一个仅影响一个用户系统的新问题。我们有一个宏工作簿,除了这个遇到“运行时:...”的特定用户之外,每个人都可以正确运行。

回答 1 投票 0

Google 电子表格脚本 - 复制选项卡

我正在尝试为 Google 电子表格创建一个脚本,通过我的目标电子表格(SS)中的自定义菜单: 读取名为“我的文件夹”的云端硬盘文件夹中包含的所有电子表格...

回答 1 投票 0

如何为字符串变量创建宏

如何在系统verilog中使用变量进行宏定义: 例子: 字符串 string_var = "你好" 定义 STRING_VAR_MACRO string_var 我想让 STRING_VAR_MACRO 成为 Hello 而不是...

回答 1 投票 0

如何编写一个(最好是声明性的)Rust 宏来遍历 AST?

我正在尝试编写一个宏,它接受(并扩展为)代码块,但也会收集它找到的文档字符串(使用文档字符串只是属性的事实)。例如,

回答 1 投票 0

只想保留患者对变量的第一次观察

示例数据集 我试图仅保留根据诊断日期第一次诊断出患有不同生长状况的患者的情况。例如,如果患者第一次被诊断...

回答 1 投票 0

理解错误“是宏,不是函数”

我已经遇到过几次这个错误,这是一个宏,而不是一个函数。但发现很难复制原因。 我后来发现我看到错误的原因是因为我在...中定义了一个宏。

回答 1 投票 0

VBA:连接选定的行并输出到新列

我正在尝试创建一个宏,用于连接我选择的行中的值(可以在 2 行到 5 行之间变化),并将连接的结果输出到新列中。 到目前为止,串联...

回答 1 投票 0

使用 sas select into: 语句创建全局宏变量

我希望使用 select into: 在宏模块中创建全局变量。 %宏示例(); proc sql noprint; 选择 x 到:DDD from aaa; 辞职; %修补; 问题是我想创建一个

回答 3 投票 0

如何让我的 Excel 宏在 Outlook 中运行

下面的代码在目标 Excel 工作簿中运行时效果非常好。我最终想从 Outlook 中运行宏。当我尝试将路径添加到

回答 1 投票 0

生成用于在宏中索引元组的整数标记

我正在尝试编写一个宏来概括这种实现(将元组转换为类型级列表): impl TupleToList for (A, B, C) { 输入列表=缺点 我正在尝试编写一个可以通用化这种实现的宏(将元组转换为类型级列表): impl<A, B, C> TupleToList for (A, B, C) { type List = Cons<A, Cons<B, Cons<C, Nil>>>; fn to_list(self) -> Self::List { Cons { head: self.0, tail: Cons { head: self.1, tail: Cons { head: self.2, tail: Nil } } } } } (具有以下结构/特征声明) pub trait List {} pub struct Nil; pub struct Cons<Head, Tail: List> { pub head: Head, pub tail: Tail, } pub trait TupleToList { type List; fn to_list(self) -> Self::List; } 我们的想法是拥有这样一个宏,可以为任何元组实现此特征(T1, T2, T3, ... TN)。 到目前为止,我已经完成了大部分工作,但还缺少一件: /// Recursively build the list type for list / tuple conversions. macro_rules! inner_tuple_to_list { () => {Nil}; ($elem:ty, $($rest:tt)*) => { Cons<$elem, inner_tuple_to_list!($($rest)*)> }; } macro_rules! inner_to_list_func { ($self:ident,) => { Nil }; ($self:ident, $elem:ty, $($rest:tt)*) => { Cons { head: $self.0, tail: inner_to_list_func!($self, $($rest)*) } }; // ^------ MISSING DETAIL } /// Implements the TupleToList and ListToTuple traits for any tuples. macro_rules! tuple_to_list { ($($elems:tt)*) => { impl <$($elems)*> TupleToList for ($($elems)*) { type List = inner_tuple_to_list!($($elems)*); fn to_list(self) -> Self::List { inner_to_list_func!(self, $($elems)*) } } } } tuple_to_list!(T1, T2,); 我遇到了编译错误,它期望输入 T2 但得到 T1。显然,因为我在我的宏实现中硬编码了self.0(我在其中添加了缺少细节的注释)。 我想要的是保留一个计数器,在适当的位置使用它$self.$counter并在每次递归时增加它,以增量方式放置self.0,self.1,self.2等 我知道在宏中计数的技术(此处描述)产生编译为数字的标记,但为了索引我的元组,我实际上需要整数标记。 有什么技术可以实现这一点吗?也许还有其他一些宏或库? 如果没有 proc 宏,就无法创建这样的递增整数。不过,您可以使用 proc-macro crate 来实现此目的,例如 seq-macro。 但是,您不需要为此使用库。您可以采用不同的技巧:元组支持解构。 所以不要指self.0,而是指self.1。等等,您可以在函数的开头执行 let (a, b, c, ...) = self; 然后使用 a、b 等.. 当然,如果没有 proc 宏,生成这些标识符也是不可能的,但我们不需要生成它们 - 我们已经有了完全相同长度的标识符 - 类型参数名称。我们可以重复使用它们。 我们需要对非蛇形变量的警告进行切片,但它有效。 /// Recursively build the list type for list / tuple conversions. macro_rules! inner_tuple_to_list { () => { Nil }; ($elem:ty, $($rest:tt)*) => { Cons<$elem, inner_tuple_to_list!($($rest)*)> }; } macro_rules! inner_to_list_func { () => { Nil }; ($elem:ident, $($rest:tt)*) => { Cons { head: $elem, tail: inner_to_list_func!($($rest)*) } }; } /// Implements the TupleToList and ListToTuple traits for any tuples. macro_rules! tuple_to_list { ($($elem:tt,)*) => { impl<$($elem,)*> TupleToList for ( $($elem,)* ) { type List = inner_tuple_to_list!($($elem,)*); fn to_list(self) -> Self::List { #[allow(non_snake_case)] let ( $($elem,)* ) = self; inner_to_list_func!($($elem,)*) } } } }

回答 1 投票 0

预处理器中的字符串文字和宏连接

最终更新: 在阅读了许多相关问题和答案后,在我看来,答案很简单,尽管令人失望:不可能在预处理器中连接字符串文字。添加 mac...

回答 2 投票 0

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