Здравствуйте, ollv, Вы писали:
O>Здравствуйте, rg45, Вы писали:
R>>Здравствуйте, ollv, Вы писали:
O>>> Из данного примера выходит, что размер __PRETTY_FUNCTION__ компайл тайм сущность.
R>>Если пример с sizeof не достаточно убедителен, можно получить даже отдельные символы из __PRETTYY_FUNCTION__ в компайл тайм:
R>>https://ideone.com/mPh41g
R>>R>>template <typename T, size_t I>
R>>constexpr char get_pretty_function_at()
R>>{
R>> return __PRETTY_FUNCTION__[I];
R>>}
R>>static_assert('i' == get_pretty_function_at<int, 42>(), "invalid symbol");
R>>static_assert('e' == get_pretty_function_at<double, 55>(), "invalid symbol");
R>>static_assert('b' == get_pretty_function_at<std::string, 64>(), "invalid symbol");
R>>
O> проапдейтим.
O>https://ideone.com/n7BbaZ
O>
O> static_assert("1"[0] == '1', "It is not a compiletime array");
O>
O> Вообще, я тут должен кое что уточнить, в gcc есть возможность работать со строковыми литералами в компайл тайм.
O>что неплохо используется в MPLLIB И вполне парсить их,
O>https://github.com/sabel83/mpllibs/blob/master/libs/safe_printf/example/validate/main.cpp
O>я даже часть парсера регулярок реализовывал на базе этого.
O> Но вот именно в преттифанкшин, эта странность, что сделать из него параметр шаблона — не выходит. Хотя просто хотелось бы просто сделать из нее параметр для для прагмы мессадж ..
Хотя, возможно конечно из него сделать — тот-же коспайл тайм стринг, я не пробовал .. сейчас не досуг. наверное распарсится, без проблем. Скорее он просто как литерал вкомпилируется в .o.
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.