/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/lwtrace/example3/lwtrace_example3.cpp
43 строки
1 KB
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#include <library/cpp/lwtrace/all.h> #include <google/protobuf/text_format.h> #include "my_action.h" #define LWTRACE_EXAMPLE_PROVIDER(PROBE, EVENT, GROUPS, TYPES, NAMES) \ PROBE(IterationProbe, GROUPS(), TYPES(i32, double), NAMES("n", "result")) \ /**/ LWTRACE_DECLARE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER) LWTRACE_DEFINE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER) void InitLWTrace() { NLWTrace::StartLwtraceFromEnv([=](NLWTrace::TManager& mngr) { mngr.RegisterCustomAction<TMyActionExecutor>(); }); } long double Fact(int n) { if (n < 0) { ythrow yexception() << "N! is undefined for negative N (" << n << ")"; } double result = 1; for (; n > 1; --n) { GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, IterationProbe, n, result); result *= n; } return result; } void FactorialCalculator() { i32 n; Cout << "Enter a number: "; TString str; Cin >> n; double factN = Fact(n); Cout << n << "! = " << factN << Endl << Endl; } int main() { InitLWTrace(); FactorialCalculator(); return 0; }