D Language
Оценка времени компиляции (CTFE)
Поиск…
замечания
CTFE - это механизм, который позволяет компилятору выполнять функции во время компиляции. Для использования этой функции нет специального набора языка D - всякий раз, когда функция просто зависит от известных значений времени компиляции, компилятор D может решить интерпретировать его во время компиляции.
Вы также можете играть в интерактивном режиме с CTFE.
Оценить функцию во время компиляции
long fib(long n)
{
return n < 2 ? n : fib(n - 1) + fib(n - 2);
}
struct FibStruct(int n) { // Remarks: n is a template
ubyte[fib(n)] data;
}
void main()
{
import std.stdio : writeln;
enum f10 = fib(10); // execute the function at compile-time
pragma(msg, f10); // will print 55 during compile-time
writeln(f10); // print 55 during runtime
pragma(msg, FibStruct!11.sizeof); // The size of the struct is 89
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow