У меня создалось впечатление, что boost bcp с опцией namespace предназначался для переименования включений и определяет для всех перечисленных модулей. При запуске инструмента и анализе вывода он, похоже, не делает этого. Как мне перераспределить их, если они все еще #include <boost/*>
и ожидать, что конечный пользователь #include <boost/*>
не вызовет конфликт версий? Это просто обертывает их закрытием пространства имен?Что действительно делает bcp -namespace?
Я использовал следующую BCP команду:
.\boost_1_53_0\dist\bin\bcp.exe --boost=boost_1_53_0 --namespace=myboost --namespace-alias smart_ptr filesystem array.hpp container move ptr_container algorithm/string.hpp tokenizer.hpp thread chrono atomic foreach.hpp build myboost
Быстрый Grep из файла yeilds:
[boost]grep -e "boost/" algorithm\string.hpp
grep -e "boost/" algorithm\string.hpp
#include <boost/algorithm/string/std_containers_traits.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/find.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/join.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/erase.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/find_iterator.hpp>
Я довольно уверен, что это случай использования для инструмента BCP с пространством имен варианты, однако, я явно недопонимаю какую-то общую концепцию/использование C++, правильно? Или, возможно, я неправильно использую этот инструмент?
Заранее благодарим за понимание.
Чтобы добавить к этому, мой коллега непреклонно настаивает на том, что мы должны искать и заменять «boost» во всем, включает и определяет. Тем не менее, сообщения, такие как этот [один] (http://stackoverflow.com/questions/836875/creating-library-with-backward-compatible-abi-that-uses-boost), указывают на то, что bcp уже делает это !! ! ??? – kevinmm
Просто для того, чтобы уточнить, я понимаю, что основное внимание в этом инструменте - сканирование модулей повышения для зависимостей и их копирование в выходной путь. Я в первую очередь интересуюсь параметрами --namespace и --namespace-alias и дополнительными функциями, которые они предоставляют. – kevinmm