Забелязах, че когато използвам xp :: sregex ::компилирате в моя код, низ ... 3rdpartyboost-1_58boost / xpressive / detail / core / matcher / regex_byref_matcher.hpp (с моя местен път) се появява в двоичния код, компилиран в модификациите за освобождаване. Има ли начин да го премахнете?
Отговори:
1 за отговор № 1Това несъмнено е, когато кодът използва __FILE__
за да получите хубави съобщения за твърдение / изключение.
Единственото място, където Xpressive го използва директно, е regex_error.hpp
:
#define BOOST_XPR_ENSURE_(pred, code, msg)
boost::xpressive::detail::ensure_(!!(pred), code, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)
/**/
Можете лесно да го хакнете да бъде
#include <boost/xpressive/regex_error.hpp>
#undef BOOST_XPR_ENSURE_
#define BOOST_XPR_ENSURE_(pred, code, msg)
boost::xpressive::detail::ensure_(!!(pred), code, msg, BOOST_CURRENT_FUNCTION, "(source-hidden)", __LINE__)
/**/
Имайте предвид:
- хакът трябва да върви преди всеки друг Xpressive включва
- това ще ограничи полезността на съобщенията, ако те се появят
- има вероятност една от библиотеките, от които Xpressive зависи, използва подобни конструкции