update boost on linux
This commit is contained in:
@@ -130,7 +130,7 @@ public:
|
||||
|
||||
void advance(std::ptrdiff_t n)
|
||||
{
|
||||
m_pos += n * sizeof(CharT);
|
||||
m_pos += static_cast<long>(n) * sizeof(CharT);
|
||||
update_char();
|
||||
}
|
||||
|
||||
@@ -141,14 +141,14 @@ public:
|
||||
|
||||
private:
|
||||
boost::shared_ptr<std::FILE> m_file;
|
||||
std::size_t m_pos;
|
||||
long m_pos;
|
||||
CharT m_curChar;
|
||||
bool m_eof;
|
||||
|
||||
void update_char(void)
|
||||
{
|
||||
using namespace std;
|
||||
if ((std::size_t)ftell(m_file.get()) != m_pos)
|
||||
if (ftell(m_file.get()) != m_pos)
|
||||
fseek(m_file.get(), m_pos, SEEK_SET);
|
||||
|
||||
m_eof = (fread(&m_curChar, sizeof(CharT), 1, m_file.get()) < 1);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/spirit/home/classic/core/nil.hpp> // for nil_t
|
||||
#include <boost/detail/iterator.hpp> // for boost::detail::iterator_traits
|
||||
#include <iterator> // for std::iterator_traits
|
||||
|
||||
namespace boost { namespace spirit {
|
||||
|
||||
@@ -91,6 +91,16 @@ private:
|
||||
|
||||
/* namespace boost::spirit { */ namespace iterator_ { namespace impl {
|
||||
|
||||
template <typename T>
|
||||
struct make_const : boost::add_const<T>
|
||||
{};
|
||||
|
||||
template <typename T>
|
||||
struct make_const<T&>
|
||||
{
|
||||
typedef typename boost::add_const<T>::type& type;
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// position_iterator_base_generator
|
||||
@@ -104,9 +114,10 @@ template <typename MainIterT, typename ForwardIterT, typename PositionT>
|
||||
struct position_iterator_base_generator
|
||||
{
|
||||
private:
|
||||
typedef boost::detail::iterator_traits<ForwardIterT> traits;
|
||||
typedef std::iterator_traits<ForwardIterT> traits;
|
||||
typedef typename traits::value_type value_type;
|
||||
typedef typename traits::iterator_category iter_category_t;
|
||||
typedef typename traits::reference reference;
|
||||
|
||||
// Position iterator is always a non-mutable iterator
|
||||
typedef typename boost::add_const<value_type>::type const_value_type;
|
||||
@@ -125,7 +136,8 @@ public:
|
||||
main_iter_t,
|
||||
ForwardIterT,
|
||||
const_value_type,
|
||||
boost::forward_traversal_tag
|
||||
boost::forward_traversal_tag,
|
||||
typename make_const<reference>::type
|
||||
> type;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user