魔法命令

魔法是内核的特殊命令,不是 C++ 编程语言的一部分。

用符号 % 定义了行魔法和 %% 定义了单元格魔法。

在 xeus-cling 中,有一些魔法是可用的。在未来,用户定义的魔法也将被启用。

%%executable

将所有输入的单元格的代码转储到一个可执行的二进制文件中。单元格的内容用于 main 函数的主体。

%%executable filename [-- linker options]
  • 示例

_images/executable.png
  • 可选参数:

任何额外的参数都会传递给链接器。特别是,这可以与 -l 一起使用,以链接额外的库,否则就会被加载到

#pragma cling load("...")

此外,一些选项影响了代码的生成:

-fsanitize=thread

用 ThreadSanitizer 启用 instrumentation

-g

启用可执行文件中的调试信息

%%file

这个神奇的命令复制了一个名为 filename 的文件中的单元格内容。

%%file [-a] filename
  • 示例

_images/file_magic.png
  • 可选参数:

-a

将内容追加到文件中。

%timeit

度量一个行语句(%timeit)或一个语句块(%%timeit)的执行时间。

  • 行模式下的用法

%timeit [-n<N> -r<R> -p<P>] statement
  • 单元格模式下的用法

%%timeit [-n<N> -r<R> -p<P>]
statements
  • 示例

_images/timeit_magic.png
  • 可选参数:

-n

在一个循环中执行给定的语句 <N> 次。如果没有给定这个值,将选择一个拟合值。

-r

重复循环迭代 <R> 次,取最佳结果。默认值:7

-p

使用 <P> 位的精度来显示计时结果。默认值:3