update boost on linux
This commit is contained in:
@@ -8,9 +8,10 @@
|
||||
#ifndef BOOST_DLL_DEMANGLE_SYMBOL_HPP_
|
||||
#define BOOST_DLL_DEMANGLE_SYMBOL_HPP_
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/dll/config.hpp>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
||||
#if defined(BOOST_MSVC) || defined(BOOST_MSVC_FULL_VER)
|
||||
|
||||
@@ -88,7 +89,7 @@ inline std::string demangle_symbol(const char *mangled_name)
|
||||
|
||||
}
|
||||
|
||||
//for my personal convinience
|
||||
//for my personal convenience
|
||||
inline std::string demangle_symbol(const std::string& mangled_name)
|
||||
{
|
||||
return demangle_symbol(mangled_name.c_str());
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
explicit mangled_storage_base(library_info & li) : mangled_storage_base(li.symbols()) {}
|
||||
|
||||
explicit mangled_storage_base(
|
||||
const boost::filesystem::path& library_path,
|
||||
const boost::dll::fs::path& library_path,
|
||||
bool throw_if_not_native_format = true)
|
||||
: mangled_storage_base(library_info(library_path, throw_if_not_native_format).symbols())
|
||||
{
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
}
|
||||
|
||||
void load(library_info & li) { storage_.clear(); add_symbols(li.symbols()); };
|
||||
void load(const boost::filesystem::path& library_path,
|
||||
void load(const boost::dll::fs::path& library_path,
|
||||
bool throw_if_not_native_format = true)
|
||||
{
|
||||
storage_.clear();
|
||||
|
||||
@@ -36,7 +36,7 @@ class mangled_storage_impl : public mangled_storage_base
|
||||
{
|
||||
return get_name<Return>();
|
||||
}
|
||||
//function to remove preceeding 'class ' or 'struct ' if the are given in this format.
|
||||
//function to remove preceding 'class ' or 'struct ' if the are given in this format.
|
||||
|
||||
inline static void trim_typename(std::string & val);
|
||||
public:
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
|
||||
void mangled_storage_impl::trim_typename(std::string & val)
|
||||
{
|
||||
//remove preceeding class or struct, because you might want to use a struct as class, et vice versa
|
||||
//remove preceding class or struct, because you might want to use a struct as class, et vice versa
|
||||
if (val.size() >= 6)
|
||||
{
|
||||
using namespace std;
|
||||
@@ -98,46 +98,48 @@ namespace parser
|
||||
{
|
||||
namespace x3 = spirit::x3;
|
||||
|
||||
auto ptr_rule_impl(std::integral_constant<std::size_t, 32>)
|
||||
inline auto ptr_rule_impl(std::integral_constant<std::size_t, 32>)
|
||||
{
|
||||
return -((-x3::space) >> "__ptr32");
|
||||
}
|
||||
auto ptr_rule_impl(std::integral_constant<std::size_t, 64>)
|
||||
inline auto ptr_rule_impl(std::integral_constant<std::size_t, 64>)
|
||||
{
|
||||
return -((-x3::space) >> "__ptr64");
|
||||
}
|
||||
|
||||
auto ptr_rule() { return ptr_rule_impl(std::integral_constant<std::size_t, sizeof(std::size_t)*8>());}
|
||||
inline auto ptr_rule() {
|
||||
return ptr_rule_impl(std::integral_constant<std::size_t, sizeof(std::size_t)*8>());
|
||||
}
|
||||
|
||||
auto const visibility = ("public:" | x3::lit("protected:") | "private:");
|
||||
auto const virtual_ = x3::space >> "virtual";
|
||||
auto const static_ = x3::space >> x3::lit("static") ;
|
||||
|
||||
auto const_rule_impl(true_type ) {return x3::space >> "const";};
|
||||
auto const_rule_impl(false_type) {return x3::eps;};
|
||||
inline auto const_rule_impl(true_type ) {return x3::space >> "const";};
|
||||
inline auto const_rule_impl(false_type) {return x3::eps;};
|
||||
template<typename T>
|
||||
auto const_rule() {using t = is_const<typename remove_reference<T>::type>; return const_rule_impl(t());}
|
||||
|
||||
auto volatile_rule_impl(true_type ) {return x3::space >> "volatile";};
|
||||
auto volatile_rule_impl(false_type) {return x3::eps;};
|
||||
inline auto volatile_rule_impl(true_type ) {return x3::space >> "volatile";};
|
||||
inline auto volatile_rule_impl(false_type) {return x3::eps;};
|
||||
template<typename T>
|
||||
auto volatile_rule() {using t = is_volatile<typename remove_reference<T>::type>; return volatile_rule_impl(t());}
|
||||
|
||||
|
||||
auto inv_const_rule_impl(true_type ) {return "const" >> x3::space ;};
|
||||
auto inv_const_rule_impl(false_type) {return x3::eps;};
|
||||
inline auto inv_const_rule_impl(true_type ) {return "const" >> x3::space ;};
|
||||
inline auto inv_const_rule_impl(false_type) {return x3::eps;};
|
||||
template<typename T>
|
||||
auto inv_const_rule() {using t = is_const<typename remove_reference<T>::type>; return inv_const_rule_impl(t());}
|
||||
|
||||
auto inv_volatile_rule_impl(true_type ) {return "volatile" >> x3::space;};
|
||||
auto inv_volatile_rule_impl(false_type) {return x3::eps;};
|
||||
inline auto inv_volatile_rule_impl(true_type ) {return "volatile" >> x3::space;};
|
||||
inline auto inv_volatile_rule_impl(false_type) {return x3::eps;};
|
||||
template<typename T>
|
||||
auto inv_volatile_rule() {using t = is_volatile<typename remove_reference<T>::type>; return inv_volatile_rule_impl(t());}
|
||||
|
||||
|
||||
auto reference_rule_impl(false_type, false_type) {return x3::eps;}
|
||||
auto reference_rule_impl(true_type, false_type) {return x3::space >>"&" ;}
|
||||
auto reference_rule_impl(false_type, true_type ) {return x3::space >>"&&" ;}
|
||||
inline auto reference_rule_impl(false_type, false_type) {return x3::eps;}
|
||||
inline auto reference_rule_impl(true_type, false_type) {return x3::space >>"&" ;}
|
||||
inline auto reference_rule_impl(false_type, true_type ) {return x3::space >>"&&" ;}
|
||||
|
||||
|
||||
template<typename T>
|
||||
@@ -158,7 +160,7 @@ namespace parser
|
||||
ptr_rule();
|
||||
}
|
||||
template<>
|
||||
auto type_rule<void>(const std::string &) { return x3::string("void"); };
|
||||
inline auto type_rule<void>(const std::string &) { return x3::string("void"); };
|
||||
|
||||
auto const cdecl_ = "__cdecl" >> x3::space;
|
||||
auto const stdcall = "__stdcall" >> x3::space;
|
||||
|
||||
Reference in New Issue
Block a user