У меня выводит: ../src/trace.h:M_TRACE:58 dasdasd
Если я правильно понимаю назначение M_TRACE, то функция должна была вывести: ../src/test.cpp:main:115 dasdasd
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>>Kstati, Caracrist, vash kod ne budet rabotaty s odnim argumentom:
C>>> M_TRACE( "dasda" );
C>>On vse je budet ojidaty 2-argument.
C>>Mojno ispolyzovaty tak:
C>>> M_TRACE( "%s", "dasda" );
C>>No, ...
C>решение этой проблемы можно совместить с добавлением перехода строки
C>
Есть definition такой:
#define TRACE(...)
Он пишет логи. Но, к сожалению он только печатает тайм и мессеж, и его нельзя модифицировать.
Я хотел написать враппер к ниму чтобы печатал файл, функцию, и номер лайна. И получилось типо этого:
Здравствуйте, cppuser, Вы писали:
C>Всем привет.
C>Есть definition такой: C>#define TRACE(...) C>Он пишет логи. Но, к сожалению он только печатает тайм и мессеж, и его нельзя модифицировать. C>Я хотел написать враппер к ниму чтобы печатал файл, функцию, и номер лайна.
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>>Всем привет.
C>>Есть definition такой: C>>#define TRACE(...) C>>Он пишет логи. Но, к сожалению он только печатает тайм и мессеж, и его нельзя модифицировать. C>>Я хотел написать враппер к ниму чтобы печатал файл, функцию, и номер лайна.
C>Попытаюсь угадать как им пользуются....
C>
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>>Всем привет.
C>>Есть definition такой: C>>#define TRACE(...) C>>Он пишет логи. Но, к сожалению он только печатает тайм и мессеж, и его нельзя модифицировать. C>>Я хотел написать враппер к ниму чтобы печатал файл, функцию, и номер лайна.
C>Попытаюсь угадать как им пользуются....
C>
Есть одна недоделанная вещь. Надо определить не C> M_TRACE(format, ...)
a C> M_TRACE(...)
так как M_TRACE(format, ...) будет всегда ожидать 1-аргумент.
Здравствуйте, cppuser, Вы писали:
C>>>Есть definition такой: C>>>#define TRACE(...) C>>>Он пишет логи. Но, к сожалению он только печатает тайм и мессеж, и его нельзя модифицировать. C>>>Я хотел написать враппер к ниму чтобы печатал файл, функцию, и номер лайна.
C>>
C>Есть одна недоделанная вещь. Надо определить не C>> M_TRACE(format, ...) C>a C>> M_TRACE(...) C>так как M_TRACE(format, ...) будет всегда ожидать 1-аргумент.
Здравствуйте, _smit, Вы писали:
_>Здравствуйте, _smit, Вы писали:
_>>Если так попробовать:
_>>
_>>constexpr struct Trace
_>>{
_>> template <typename ...Args>
_>> void operator()(Args...) const {TRACE(Args);}
_>>} M_TRACE;
_>>потребуется флаг (-std=c++0x) или (-std=c++11)
_>прошу прощения, идею высказал, но изложил код некорректно, сейчас подправлю шаблон Trace... (может кто опередит?)
Если не ошибаюсь, то надо так записать:
[c]
constexpr struct Trace
{
template <typename ...Args>
void operator()(Args ...x) const
{
TRACE(x...);
}
} M_TRACE;
C>Есть одна недоделанная вещь. Надо определить не C>> M_TRACE(format, ...) C>a C>> M_TRACE(...) C>так как M_TRACE(format, ...) будет всегда ожидать 1-аргумент.
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>>Есть одна недоделанная вещь. Надо определить не C>>> M_TRACE(format, ...) C>>a C>>> M_TRACE(...) C>>так как M_TRACE(format, ...) будет всегда ожидать 1-аргумент.
Здравствуйте, _smit, Вы писали:
_>Здравствуйте, cppuser, Вы писали: _>... C>>int main() C>>{ C>> M_TRACE( "dasdasd" );
C>> return 0; C>>}
_>У меня выводит: ../src/trace.h:M_TRACE:58 dasdasd _>Если я правильно понимаю назначение M_TRACE, то функция должна была вывести: ../src/test.cpp:main:115 dasdasd
Здравствуйте, _smit, Вы писали:
_>Здравствуйте, cppuser, Вы писали: _>... C>>int main() C>>{ C>> M_TRACE( "dasdasd" );
C>> return 0; C>>}
_>У меня выводит: ../src/trace.h:M_TRACE:58 dasdasd _>Если я правильно понимаю назначение M_TRACE, то функция должна была вывести: ../src/test.cpp:main:115 dasdasd
Здравствуйте, _smit, Вы писали:
_>Здравствуйте, cppuser, Вы писали: _>... C>>int main() C>>{ C>> M_TRACE( "dasdasd" );
C>> return 0; C>>}
_>У меня выводит: ../src/trace.h:M_TRACE:58 dasdasd _>Если я правильно понимаю назначение M_TRACE, то функция должна была вывести: ../src/test.cpp:main:115 dasdasd
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>> string s = string(first) + string(fifth) + string("\n");
C>Это сильно ограничивает применимость (например нельзя трейсить из аллокатора) и просто ужасно по производительности.
Esty drugie idei? Mne toje ni takuj nravitsya . No, poka v golovu ne prixodit nichego novogo...
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>> string s = string(first) + string(fifth) + string("\n");
C>Это сильно ограничивает применимость (например нельзя трейсить из аллокатора) и просто ужасно по производительности.
Было б круто, если б можно было все только с define'ами провернуть...
C>>>Esty drugie idei? Mne toje ni takuj nravitsya . No, poka v golovu ne prixodit nichego novogo... C>Kstati, Caracrist, vash kod ne budet rabotaty s odnim argumentom: C>On vse je budet ojidaty 2-argument. C>Mojno ispolyzovaty tak: C>No, ...
у меня на работе тоже нет русской клавиатуры, и по этому я пишу вот тут:
Здравствуйте, Caracrist, Вы писали:
C>Здравствуйте, cppuser, Вы писали:
C>>>>Esty drugie idei? Mne toje ni takuj nravitsya . No, poka v golovu ne prixodit nichego novogo... C>>Kstati, Caracrist, vash kod ne budet rabotaty s odnim argumentom: C>>On vse je budet ojidaty 2-argument. C>>Mojno ispolyzovaty tak: C>>No, ...
C>у меня на работе тоже нет русской клавиатуры, и по этому я пишу вот тут:
C>http://translate.google.com/#ru/en/