/
usr
/
include
/
boost
/
locale
/
boundary
/
/usr/include/boost/locale/boundary
mkdir
upload
Name
Size
Mode
Actions
boundary_point.hpp
5523
0644
edit
dl
rm
facets.hpp
6742
0644
edit
dl
rm
index.hpp
47478
0644
edit
dl
rm
segment.hpp
15645
0644
edit
dl
rm
types.hpp
5563
0644
edit
dl
rm
Edit:
/usr/include/boost/locale/boundary/boundary_point.hpp
(5523B)
// // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED #define BOOST_LOCALE_BOUNDARY_BOUNDARY_POINT_HPP_INCLUDED #include <boost/locale/boundary/types.hpp> namespace boost { namespace locale { namespace boundary { /// /// \addtogroup boundary /// @{ /// /// \brief This class represents a boundary point in the text. /// /// It represents a pair - an iterator and a rule that defines this /// point. /// /// This type of object is dereference by the iterators of boundary_point_index. Using a rule() /// member function you can get the reason why this specific boundary point was selected. /// /// For example, When you use a sentence boundary analysis, the (rule() & \ref sentence_term) != 0 means /// that this boundary point was selected because a sentence terminator (like .?!) was spotted /// and the (rule() & \ref sentence_sep)!=0 means that a separator like line feed or carriage /// return was observed. /// /// \note /// /// - The beginning of analyzed range is always considered a boundary point and its rule is always 0. /// - when using a word boundary analysis the returned rule relates to a chunk of text preceding /// this point. /// /// \see /// /// - \ref boundary_point_index /// - \ref segment /// - \ref segment_index /// template<typename IteratorType> class boundary_point { public: /// /// The type of the base iterator that iterates the original text /// typedef IteratorType iterator_type; /// /// Empty default constructor /// boundary_point() : rule_(0) {} /// /// Create a new boundary_point using iterator \p and a rule \a r /// boundary_point(iterator_type p,rule_type r) : iterator_(p), rule_(r) { } /// /// Set an new iterator value \a i /// void iterator(iterator_type i) { iterator_ = i; } /// /// Set an new rule value \a r /// void rule(rule_type r) { rule_ = r; } /// /// Fetch an iterator /// iterator_type iterator() const { return iterator_; } /// /// Fetch a rule /// rule_type rule() const { return rule_; } /// /// Check if two boundary points are the same /// bool operator==(boundary_point const &other) const { return iterator_ == other.iterator_ && rule_ = other.rule_; } /// /// Check if two boundary points are different /// bool operator!=(boundary_point const &other) const { return !(*this==other); } /// /// Check if the boundary point points to same location as an iterator \a other /// bool operator==(iterator_type const &other) const { return iterator_ == other; } /// /// Check if the boundary point points to different location from an iterator \a other /// bool operator!=(iterator_type const &other) const { return iterator_ != other; } /// /// Automatic cast to the iterator it represents /// operator iterator_type ()const { return iterator_; } private: iterator_type iterator_; rule_type rule_; }; /// /// Check if the boundary point \a r points to same location as an iterator \a l /// template<typename BaseIterator> bool operator==(BaseIterator const &l,boundary_point<BaseIterator> const &r) { return r==l; } /// /// Check if the boundary point \a r points to different location from an iterator \a l /// template<typename BaseIterator> bool operator!=(BaseIterator const &l,boundary_point<BaseIterator> const &r) { return r!=l; } /// @} typedef boundary_point<std::string::const_iterator> sboundary_point; ///< convenience typedef typedef boundary_point<std::wstring::const_iterator> wsboundary_point; ///< convenience typedef #ifdef BOOST_LOCALE_ENABLE_CHAR16_T typedef boundary_point<std::u16string::const_iterator> u16sboundary_point;///< convenience typedef #endif #ifdef BOOST_LOCALE_ENABLE_CHAR32_T typedef boundary_point<std::u32string::const_iterator> u32sboundary_point;///< convenience typedef #endif typedef boundary_point<char const *> cboundary_point; ///< convenience typedef typedef boundary_point<wchar_t const *> wcboundary_point; ///< convenience typedef #ifdef BOOST_LOCALE_ENABLE_CHAR16_T typedef boundary_point<char16_t const *> u16cboundary_point; ///< convenience typedef #endif #ifdef BOOST_LOCALE_ENABLE_CHAR32_T typedef boundary_point<char32_t const *> u32cboundary_point; ///< convenience typedef #endif } // boundary } // locale } // boost #endif // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
Save
cmd:
run