diff --git a/third_party/ycmd/build.sh b/third_party/ycmd/build.sh
deleted file mode 100755
index 4ee8c9f3..00000000
--- a/third_party/ycmd/build.sh
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-function command_exists {
- hash "$1" 2>/dev/null ;
-}
-
-function cmake_install {
- if [[ `uname -s` == "Darwin" ]]; then
- homebrew_cmake_install
- else
- linux_cmake_install
- fi
-}
-
-function homebrew_cmake_install {
- if command_exists brew; then
- brew install cmake
- else
- echo "Homebrew was not found installed in your system."
- echo "Go to http://mxcl.github.com/homebrew/ and follow the instructions."
- echo "Or install CMake somehow and retry."
- exit 1
- fi
-}
-
-function python_finder {
- python_library="-DPYTHON_LIBRARY="
- python_include="-DPYTHON_INCLUDE_DIR="
-
- # The CMake 'FindPythonLibs' Module does not work properly.
- # So we are forced to do its job for it.
- python_prefix=$(python-config --prefix | sed 's/^[ \t]*//')
- if [ -f "${python_prefix}/Python" ]; then
- python_library+="${python_prefix}/Python"
- python_include+="${python_prefix}/Headers"
- else
- which_python=$(python -c 'import sys;print(sys.version)' | sed 's/^[ \t]*//')
- which_python="python${which_python:0:3}"
- lib_python="${python_prefix}/lib/lib${which_python}"
- if [ -f "${lib_python}.a" ]; then
- python_library+="${lib_python}.a"
- # This check is for for CYGWIN
- elif [ -f "${lib_python}.dll.a" ]; then
- python_library+="${lib_python}.dll.a"
- else
- python_library+="${lib_python}.dylib"
- fi
- python_include+="${python_prefix}/include/${which_python}"
- fi
-
- echo "${python_library} ${python_include}"
-}
-
-function num_cores {
- if command_exists nproc; then
- num_cpus=$(nproc)
- else
- num_cpus=1
- if [[ `uname -s` == "Linux" ]]; then
- num_cpus=$(grep -c ^processor /proc/cpuinfo)
- else
- # Works on Mac and FreeBSD
- num_cpus=$(sysctl -n hw.ncpu)
- fi
- fi
- echo $num_cpus
-}
-
-
-function install {
- build_dir=`mktemp -d -t ycm_build.XXXXXX`
- pushd $build_dir
-
- if [[ `uname -s` == "Darwin" ]]; then
- cmake -G "Unix Makefiles" $(python_finder) "$@" . $SCRIPT_DIR/cpp
- else
- cmake -G "Unix Makefiles" "$@" . $SCRIPT_DIR/cpp
- fi
-
- make -j $(num_cores) ycm_support_libs
- popd
- rm -rf $build_dir
-}
-
-function testrun {
- build_dir=`mktemp -d -t ycm_build.XXXXXX`
- pushd $build_dir
-
- cmake -G "Unix Makefiles" "$@" . $SCRIPT_DIR/cpp
- make -j $(num_cores) ycm_core_tests
- cd ycm/tests
- LD_LIBRARY_PATH=$SCRIPT_DIR ./ycm_core_tests
-
- popd
- rm -rf $build_dir
-}
-
-function linux_cmake_install {
- echo "Please install CMake using your package manager and retry."
- exit 1
-}
-
-function usage {
- echo "Usage: $0 [--clang-completer [--system-libclang]] [--omnisharp-completer]"
- exit 0
-}
-
-function check_third_party_libs {
- libs_present=true
- for folder in third_party/*; do
- num_files_in_folder=$(find $folder -maxdepth 1 -mindepth 1 | wc -l)
- if [[ $num_files_in_folder -eq 0 ]]; then
- libs_present=false
- fi
- done
-
- if ! $libs_present; then
- echo "Some folders in ./third_party are empty; you probably forgot to run:"
- printf "\n\tgit submodule update --init --recursive\n\n"
- exit 1
- fi
-}
-
-cmake_args=""
-omnisharp_completer=false
-for flag in $@; do
- case "$flag" in
- --clang-completer)
- cmake_args="-DUSE_CLANG_COMPLETER=ON"
- ;;
- --system-libclang)
- cmake_args="$cmake_args -DUSE_SYSTEM_LIBCLANG=ON"
- ;;
- --omnisharp-completer)
- omnisharp_completer=true
- ;;
- *)
- usage
- ;;
- esac
-done
-
-if [[ $cmake_args == *-DUSE_SYSTEM_LIBCLANG=ON* ]] && \
- [[ $cmake_args != *-DUSE_CLANG_COMPLETER=ON* ]]; then
- usage
-fi
-
-check_third_party_libs
-
-if ! command_exists cmake; then
- echo "CMake is required to build YouCompleteMe."
- cmake_install
-fi
-
-if [ -z "$YCM_TESTRUN" ]; then
- install $cmake_args $EXTRA_CMAKE_ARGS
-else
- testrun $cmake_args $EXTRA_CMAKE_ARGS
-fi
-
-if $omnisharp_completer; then
- buildcommand="msbuild"
- if ! command_exists msbuild; then
- buildcommand="msbuild.exe"
- if ! command_exists msbuild.exe; then
- buildcommand="xbuild"
- if ! command_exists xbuild; then
- echo "msbuild or xbuild is required to build Omnisharp"
- exit 1
- fi
- fi
- fi
-
- build_dir=$SCRIPT_DIR"/third_party/OmniSharpServer"
-
- cd $build_dir
- $buildcommand
- cd $ycm_dir
-fi
diff --git a/third_party/ycmd/cpp/BoostParts/CMakeLists.txt b/third_party/ycmd/cpp/BoostParts/CMakeLists.txt
deleted file mode 100644
index 6c442ff8..00000000
--- a/third_party/ycmd/cpp/BoostParts/CMakeLists.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright (C) 2011, 2012 Google Inc.
-#
-# This file is part of YouCompleteMe.
-#
-# YouCompleteMe is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# YouCompleteMe is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with YouCompleteMe. If not, see .
-
-# The interesting parts of Boost have been extracted using
-# the BCP tool:
-# http://www.boost.org/doc/libs/1_54_0/tools/bcp/doc/html/index.html
-#
-# See the top-level update_boost.sh script for details on how bcp is called to
-# generate BoostParts.
-
-cmake_minimum_required( VERSION 2.8 )
-
-project( BoostParts )
-
-set( Python_ADDITIONAL_VERSIONS 2.7 2.6 )
-find_package( PythonLibs 2.6 REQUIRED )
-
-if ( NOT PYTHONLIBS_VERSION_STRING VERSION_LESS "3.0.0" )
- message( FATAL_ERROR
- "CMake found python3 libs instead of python2 libs. YCM works only with "
- "python2.\n" )
-endif()
-
-file( GLOB_RECURSE SOURCES *.cpp )
-
-# We need to remove all the thread cpp files and then add them on a per-platform
-# basis
-file( GLOB_RECURSE to_remove libs/thread/*.cpp libs/detail/*.cpp )
-
-if( to_remove )
- list( REMOVE_ITEM SOURCES ${to_remove} )
-endif()
-
-set( COMMON_SOURCES
- libs/thread/src/future.cpp
- )
-
-set( WIN_SOURCES
- libs/thread/src/win32/thread.cpp
- libs/thread/src/win32/timeconv.inl
- libs/thread/src/win32/tss_dll.cpp
- libs/thread/src/win32/tss_pe.cpp
- )
-
-set( UNIX_SOURCES
- libs/thread/src/pthread/once.cpp
- libs/thread/src/pthread/thread.cpp
- libs/thread/src/pthread/timeconv.inl
- )
-
-list( APPEND SOURCES ${COMMON_SOURCES} )
-
-if ( WIN32 )
- list( APPEND SOURCES ${WIN_SOURCES} )
-else()
- list( APPEND SOURCES ${UNIX_SOURCES} )
-endif()
-
-#############################################################################
-
-include_directories(
- SYSTEM
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${PYTHON_INCLUDE_DIRS}
- )
-
-add_library( BoostParts ${SOURCES} )
-
-#############################################################################
-
-if( CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG )
- # No warnings. We just use Boost as is so warnings coming from it are just
- # noise.
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
-endif()
-
-#############################################################################
-
-if( NOT WIN32 )
- # Linking fails without this on some platforms, notably anything x64.
- set_target_properties( BoostParts PROPERTIES COMPILE_FLAGS "-fPIC")
-endif()
-
-#############################################################################
-
-# Special compiler and linker flags for MSVC
-if( MSVC )
- set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi /GL" )
- set_target_properties( ${PROJECT_NAME} PROPERTIES STATIC_LIBRARY_FLAGS "/LTCG" )
-endif()
-
-if( SYSTEM_IS_SUNOS )
- # SunOS needs this setting for thread support
- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthreads" )
-endif()
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/cxx11/any_of.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/cxx11/any_of.hpp
deleted file mode 100644
index c3ab3ce5..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/cxx11/any_of.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- Copyright (c) Marshall Clow 2008-2012.
-
- 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)
-
- For more information, see http://www.boost.org
-*/
-
-/// \file
-/// \brief Test ranges to see if any elements match a value or predicate.
-/// \author Marshall Clow
-
-#ifndef BOOST_ALGORITHM_ANY_OF_HPP
-#define BOOST_ALGORITHM_ANY_OF_HPP
-
-#include // for std::any_of, if available
-#include
-#include
-
-namespace boost { namespace algorithm {
-
-// Use the C++11 versions of any_of if it is available
-#if __cplusplus >= 201103L
-using std::any_of; // Section 25.2.2
-#else
-/// \fn any_of ( InputIterator first, InputIterator last, Predicate p )
-/// \return true if any of the elements in [first, last) satisfy the predicate
-/// \note returns false on an empty range
-///
-/// \param first The start of the input sequence
-/// \param last One past the end of the input sequence
-/// \param p A predicate for testing the elements of the sequence
-///
-template
-bool any_of ( InputIterator first, InputIterator last, Predicate p )
-{
- for ( ; first != last; ++first )
- if ( p(*first))
- return true;
- return false;
-}
-#endif
-
-/// \fn any_of ( const Range &r, Predicate p )
-/// \return true if any elements in the range satisfy the predicate 'p'
-/// \note returns false on an empty range
-///
-/// \param r The input range
-/// \param p A predicate for testing the elements of the range
-///
-template
-bool any_of ( const Range &r, Predicate p )
-{
- return boost::algorithm::any_of (boost::begin (r), boost::end (r), p);
-}
-
-/// \fn any_of_equal ( InputIterator first, InputIterator last, const V &val )
-/// \return true if any of the elements in [first, last) are equal to 'val'
-/// \note returns false on an empty range
-///
-/// \param first The start of the input sequence
-/// \param last One past the end of the input sequence
-/// \param val A value to compare against
-///
-template
-bool any_of_equal ( InputIterator first, InputIterator last, const V &val )
-{
- for ( ; first != last; ++first )
- if ( val == *first )
- return true;
- return false;
-}
-
-/// \fn any_of_equal ( const Range &r, const V &val )
-/// \return true if any of the elements in the range are equal to 'val'
-/// \note returns false on an empty range
-///
-/// \param r The input range
-/// \param val A value to compare against
-///
-template
-bool any_of_equal ( const Range &r, const V &val )
-{
- return boost::algorithm::any_of_equal (boost::begin (r), boost::end (r), val);
-}
-
-}} // namespace boost and algorithm
-
-#endif // BOOST_ALGORITHM_ANY_OF_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string.hpp
deleted file mode 100644
index 07715173..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Boost string_algo library string_algo.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2004.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_ALGO_HPP
-#define BOOST_STRING_ALGO_HPP
-
-/*! \file
- Cumulative include for string_algo library
-*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-#endif // BOOST_STRING_ALGO_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/case_conv.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/case_conv.hpp
deleted file mode 100644
index 683340b8..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/case_conv.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-// Boost string_algo library case_conv.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CASE_CONV_HPP
-#define BOOST_STRING_CASE_CONV_HPP
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-
-/*! \file
- Defines sequence case-conversion algorithms.
- Algorithms convert each element in the input sequence to the
- desired case using provided locales.
-*/
-
-namespace boost {
- namespace algorithm {
-
-// to_lower -----------------------------------------------//
-
- //! Convert to lower case
- /*!
- Each element of the input sequence is converted to lower
- case. The result is a copy of the input converted to lower case.
- It is returned as a sequence or copied to the output iterator.
-
- \param Output An output iterator to which the result will be copied
- \param Input An input range
- \param Loc A locale used for conversion
- \return
- An output iterator pointing just after the last inserted character or
- a copy of the input
-
- \note The second variant of this function provides the strong exception-safety guarantee
-
- */
- template
- inline OutputIteratorT
- to_lower_copy(
- OutputIteratorT Output,
- const RangeT& Input,
- const std::locale& Loc=std::locale())
- {
- return ::boost::algorithm::detail::transform_range_copy(
- Output,
- ::boost::as_literal(Input),
- ::boost::algorithm::detail::to_lowerF<
- typename range_value::type >(Loc));
- }
-
- //! Convert to lower case
- /*!
- \overload
- */
- template
- inline SequenceT to_lower_copy(
- const SequenceT& Input,
- const std::locale& Loc=std::locale())
- {
- return ::boost::algorithm::detail::transform_range_copy(
- Input,
- ::boost::algorithm::detail::to_lowerF<
- typename range_value::type >(Loc));
- }
-
- //! Convert to lower case
- /*!
- Each element of the input sequence is converted to lower
- case. The input sequence is modified in-place.
-
- \param Input A range
- \param Loc a locale used for conversion
- */
- template
- inline void to_lower(
- WritableRangeT& Input,
- const std::locale& Loc=std::locale())
- {
- ::boost::algorithm::detail::transform_range(
- ::boost::as_literal(Input),
- ::boost::algorithm::detail::to_lowerF<
- typename range_value::type >(Loc));
- }
-
-// to_upper -----------------------------------------------//
-
- //! Convert to upper case
- /*!
- Each element of the input sequence is converted to upper
- case. The result is a copy of the input converted to upper case.
- It is returned as a sequence or copied to the output iterator
-
- \param Output An output iterator to which the result will be copied
- \param Input An input range
- \param Loc A locale used for conversion
- \return
- An output iterator pointing just after the last inserted character or
- a copy of the input
-
- \note The second variant of this function provides the strong exception-safety guarantee
- */
- template
- inline OutputIteratorT
- to_upper_copy(
- OutputIteratorT Output,
- const RangeT& Input,
- const std::locale& Loc=std::locale())
- {
- return ::boost::algorithm::detail::transform_range_copy(
- Output,
- ::boost::as_literal(Input),
- ::boost::algorithm::detail::to_upperF<
- typename range_value::type >(Loc));
- }
-
- //! Convert to upper case
- /*!
- \overload
- */
- template
- inline SequenceT to_upper_copy(
- const SequenceT& Input,
- const std::locale& Loc=std::locale())
- {
- return ::boost::algorithm::detail::transform_range_copy(
- Input,
- ::boost::algorithm::detail::to_upperF<
- typename range_value::type >(Loc));
- }
-
- //! Convert to upper case
- /*!
- Each element of the input sequence is converted to upper
- case. The input sequence is modified in-place.
-
- \param Input An input range
- \param Loc a locale used for conversion
- */
- template
- inline void to_upper(
- WritableRangeT& Input,
- const std::locale& Loc=std::locale())
- {
- ::boost::algorithm::detail::transform_range(
- ::boost::as_literal(Input),
- ::boost::algorithm::detail::to_upperF<
- typename range_value::type >(Loc));
- }
-
- } // namespace algorithm
-
- // pull names to the boost namespace
- using algorithm::to_lower;
- using algorithm::to_lower_copy;
- using algorithm::to_upper;
- using algorithm::to_upper_copy;
-
-} // namespace boost
-
-#endif // BOOST_STRING_CASE_CONV_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/classification.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/classification.hpp
deleted file mode 100644
index ca43602d..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/classification.hpp
+++ /dev/null
@@ -1,312 +0,0 @@
-// Boost string_algo library classification.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CLASSIFICATION_HPP
-#define BOOST_STRING_CLASSIFICATION_HPP
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-
-/*! \file
- Classification predicates are included in the library to give
- some more convenience when using algorithms like \c trim() and \c all().
- They wrap functionality of STL classification functions ( e.g. \c std::isspace() )
- into generic functors.
-*/
-
-namespace boost {
- namespace algorithm {
-
-// classification functor generator -------------------------------------//
-
- //! is_classified predicate
- /*!
- Construct the \c is_classified predicate. This predicate holds if the input is
- of specified \c std::ctype category.
-
- \param Type A \c std::ctype category
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_classified(std::ctype_base::mask Type, const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(Type, Loc);
- }
-
- //! is_space predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::space category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_space(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::space, Loc);
- }
-
- //! is_alnum predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::alnum category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_alnum(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::alnum, Loc);
- }
-
- //! is_alpha predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::alpha category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_alpha(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::alpha, Loc);
- }
-
- //! is_cntrl predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::cntrl category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_cntrl(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::cntrl, Loc);
- }
-
- //! is_digit predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::digit category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_digit(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::digit, Loc);
- }
-
- //! is_graph predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::graph category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_graph(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::graph, Loc);
- }
-
- //! is_lower predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::lower category.
-
- \param Loc A locale used for classification
- \return An instance of \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_lower(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::lower, Loc);
- }
-
- //! is_print predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::print category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_print(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::print, Loc);
- }
-
- //! is_punct predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::punct category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_punct(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::punct, Loc);
- }
-
- //! is_upper predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::upper category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_upper(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::upper, Loc);
- }
-
- //! is_xdigit predicate
- /*!
- Construct the \c is_classified predicate for the \c ctype_base::xdigit category.
-
- \param Loc A locale used for classification
- \return An instance of the \c is_classified predicate
- */
- inline detail::is_classifiedF
- is_xdigit(const std::locale& Loc=std::locale())
- {
- return detail::is_classifiedF(std::ctype_base::xdigit, Loc);
- }
-
- //! is_any_of predicate
- /*!
- Construct the \c is_any_of predicate. The predicate holds if the input
- is included in the specified set of characters.
-
- \param Set A set of characters to be recognized
- \return An instance of the \c is_any_of predicate
- */
- template
- inline detail::is_any_ofF<
- BOOST_STRING_TYPENAME range_value::type>
- is_any_of( const RangeT& Set )
- {
- iterator_range::type> lit_set(boost::as_literal(Set));
- return detail::is_any_ofF::type>(lit_set);
- }
-
- //! is_from_range predicate
- /*!
- Construct the \c is_from_range predicate. The predicate holds if the input
- is included in the specified range. (i.e. From <= Ch <= To )
-
- \param From The start of the range
- \param To The end of the range
- \return An instance of the \c is_from_range predicate
- */
- template
- inline detail::is_from_rangeF is_from_range(CharT From, CharT To)
- {
- return detail::is_from_rangeF(From,To);
- }
-
- // predicate combinators ---------------------------------------------------//
-
- //! predicate 'and' composition predicate
- /*!
- Construct the \c class_and predicate. This predicate can be used
- to logically combine two classification predicates. \c class_and holds,
- if both predicates return true.
-
- \param Pred1 The first predicate
- \param Pred2 The second predicate
- \return An instance of the \c class_and predicate
- */
- template
- inline detail::pred_andF
- operator&&(
- const predicate_facade& Pred1,
- const predicate_facade& Pred2 )
- {
- // Doing the static_cast with the pointer instead of the reference
- // is a workaround for some compilers which have problems with
- // static_cast's of template references, i.e. CW8. /grafik/
- return detail::pred_andF(
- *static_cast(&Pred1),
- *static_cast(&Pred2) );
- }
-
- //! predicate 'or' composition predicate
- /*!
- Construct the \c class_or predicate. This predicate can be used
- to logically combine two classification predicates. \c class_or holds,
- if one of the predicates return true.
-
- \param Pred1 The first predicate
- \param Pred2 The second predicate
- \return An instance of the \c class_or predicate
- */
- template
- inline detail::pred_orF
- operator||(
- const predicate_facade& Pred1,
- const predicate_facade& Pred2 )
- {
- // Doing the static_cast with the pointer instead of the reference
- // is a workaround for some compilers which have problems with
- // static_cast's of template references, i.e. CW8. /grafik/
- return detail::pred_orF(
- *static_cast(&Pred1),
- *static_cast(&Pred2));
- }
-
- //! predicate negation operator
- /*!
- Construct the \c class_not predicate. This predicate represents a negation.
- \c class_or holds if of the predicates return false.
-
- \param Pred The predicate to be negated
- \return An instance of the \c class_not predicate
- */
- template
- inline detail::pred_notF
- operator!( const predicate_facade& Pred )
- {
- // Doing the static_cast with the pointer instead of the reference
- // is a workaround for some compilers which have problems with
- // static_cast's of template references, i.e. CW8. /grafik/
- return detail::pred_notF(*static_cast(&Pred));
- }
-
- } // namespace algorithm
-
- // pull names to the boost namespace
- using algorithm::is_classified;
- using algorithm::is_space;
- using algorithm::is_alnum;
- using algorithm::is_alpha;
- using algorithm::is_cntrl;
- using algorithm::is_digit;
- using algorithm::is_graph;
- using algorithm::is_lower;
- using algorithm::is_upper;
- using algorithm::is_print;
- using algorithm::is_punct;
- using algorithm::is_xdigit;
- using algorithm::is_any_of;
- using algorithm::is_from_range;
-
-} // namespace boost
-
-#endif // BOOST_STRING_PREDICATE_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/compare.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/compare.hpp
deleted file mode 100644
index 734303a9..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/compare.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-// Boost string_algo library compare.hpp header file -------------------------//
-
-// Copyright Pavol Droba 2002-2006.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_COMPARE_HPP
-#define BOOST_STRING_COMPARE_HPP
-
-#include
-#include
-
-/*! \file
- Defines element comparison predicates. Many algorithms in this library can
- take an additional argument with a predicate used to compare elements.
- This makes it possible, for instance, to have case insensitive versions
- of the algorithms.
-*/
-
-namespace boost {
- namespace algorithm {
-
- // is_equal functor -----------------------------------------------//
-
- //! is_equal functor
- /*!
- Standard STL equal_to only handle comparison between arguments
- of the same type. This is a less restrictive version which wraps operator ==.
- */
- struct is_equal
- {
- //! Function operator
- /*!
- Compare two operands for equality
- */
- template< typename T1, typename T2 >
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- return Arg1==Arg2;
- }
- };
-
- //! case insensitive version of is_equal
- /*!
- Case insensitive comparison predicate. Comparison is done using
- specified locales.
- */
- struct is_iequal
- {
- //! Constructor
- /*!
- \param Loc locales used for comparison
- */
- is_iequal( const std::locale& Loc=std::locale() ) :
- m_Loc( Loc ) {}
-
- //! Function operator
- /*!
- Compare two operands. Case is ignored.
- */
- template< typename T1, typename T2 >
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper(Arg1)==std::toupper(Arg2);
- #else
- return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc);
- #endif
- }
-
- private:
- std::locale m_Loc;
- };
-
- // is_less functor -----------------------------------------------//
-
- //! is_less functor
- /*!
- Convenient version of standard std::less. Operation is templated, therefore it is
- not required to specify the exact types upon the construction
- */
- struct is_less
- {
- //! Functor operation
- /*!
- Compare two operands using > operator
- */
- template< typename T1, typename T2 >
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- return Arg1
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper(Arg1)(Arg1,m_Loc)(Arg2,m_Loc);
- #endif
- }
-
- private:
- std::locale m_Loc;
- };
-
- // is_not_greater functor -----------------------------------------------//
-
- //! is_not_greater functor
- /*!
- Convenient version of standard std::not_greater_to. Operation is templated, therefore it is
- not required to specify the exact types upon the construction
- */
- struct is_not_greater
- {
- //! Functor operation
- /*!
- Compare two operands using > operator
- */
- template< typename T1, typename T2 >
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- return Arg1<=Arg2;
- }
- };
-
-
- //! case insensitive version of is_not_greater
- /*!
- Case insensitive comparison predicate. Comparison is done using
- specified locales.
- */
- struct is_not_igreater
- {
- //! Constructor
- /*!
- \param Loc locales used for comparison
- */
- is_not_igreater( const std::locale& Loc=std::locale() ) :
- m_Loc( Loc ) {}
-
- //! Function operator
- /*!
- Compare two operands. Case is ignored.
- */
- template< typename T1, typename T2 >
- bool operator()( const T1& Arg1, const T2& Arg2 ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper(Arg1)<=std::toupper(Arg2);
- #else
- return std::toupper(Arg1,m_Loc)<=std::toupper(Arg2,m_Loc);
- #endif
- }
-
- private:
- std::locale m_Loc;
- };
-
-
- } // namespace algorithm
-
- // pull names to the boost namespace
- using algorithm::is_equal;
- using algorithm::is_iequal;
- using algorithm::is_less;
- using algorithm::is_iless;
- using algorithm::is_not_greater;
- using algorithm::is_not_igreater;
-
-} // namespace boost
-
-
-#endif // BOOST_STRING_COMPARE_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/concept.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/concept.hpp
deleted file mode 100644
index 17e83495..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/concept.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// Boost string_algo library concept.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CONCEPT_HPP
-#define BOOST_STRING_CONCEPT_HPP
-
-#include
-#include
-#include
-#include
-
-/*! \file
- Defines concepts used in string_algo library
-*/
-
-namespace boost {
- namespace algorithm {
-
- //! Finder concept
- /*!
- Defines the Finder concept. Finder is a functor which selects
- an arbitrary part of a string. Search is performed on
- the range specified by starting and ending iterators.
-
- Result of the find operation must be convertible to iterator_range.
- */
- template
- struct FinderConcept
- {
- private:
- typedef iterator_range range;
- public:
- void constraints()
- {
- // Operation
- r=(*pF)(i,i);
- }
- private:
- range r;
- IteratorT i;
- FinderT* pF;
- }; // Finder_concept
-
-
- //! Formatter concept
- /*!
- Defines the Formatter concept. Formatter is a functor, which
- takes a result from a finder operation and transforms it
- in a specific way.
-
- Result must be a container supported by container_traits,
- or a reference to it.
- */
- template
- struct FormatterConcept
- {
- public:
- void constraints()
- {
- // Operation
- ::boost::begin((*pFo)( (*pF)(i,i) ));
- ::boost::end((*pFo)( (*pF)(i,i) ));
- }
- private:
- IteratorT i;
- FinderT* pF;
- FormatterT *pFo;
- }; // FormatterConcept;
-
- } // namespace algorithm
-} // namespace boost
-
-
-
-
-#endif // BOOST_STRING_CONCEPT_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/config.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/config.hpp
deleted file mode 100644
index 559750ac..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/config.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// Boost string_algo library config.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CONFIG_HPP
-#define BOOST_STRING_CONFIG_HPP
-
-#include
-#include
-
-#ifdef BOOST_STRING_DEDUCED_TYPENAME
-# error "macro already defined!"
-#endif
-
-#define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME
-
-// Metrowerks workaround
-#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x
-#pragma parse_func_templ off
-#endif
-
-#endif // BOOST_STRING_CONFIG_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/constants.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/constants.hpp
deleted file mode 100644
index 6ed70eff..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/constants.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Boost string_algo library constants.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CONSTANTS_HPP
-#define BOOST_STRING_CONSTANTS_HPP
-
-namespace boost {
- namespace algorithm {
-
- //! Token compression mode
- /*!
- Specifies token compression mode for the token_finder.
- */
- enum token_compress_mode_type
- {
- token_compress_on, //!< Compress adjacent tokens
- token_compress_off //!< Do not compress adjacent tokens
- };
-
- } // namespace algorithm
-
- // pull the names to the boost namespace
- using algorithm::token_compress_on;
- using algorithm::token_compress_off;
-
-} // namespace boost
-
-#endif // BOOST_STRING_CONSTANTS_HPP
-
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/case_conv.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/case_conv.hpp
deleted file mode 100644
index 42621c74..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/case_conv.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// Boost string_algo library string_funct.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP
-#define BOOST_STRING_CASE_CONV_DETAIL_HPP
-
-#include
-#include
-#include
-
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// case conversion functors -----------------------------------------------//
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-
- // a tolower functor
- template
- struct to_lowerF : public std::unary_function
- {
- // Constructor
- to_lowerF( const std::locale& Loc ) : m_Loc( &Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::tolower( static_cast::type> ( Ch ));
- #else
- return std::tolower( Ch, *m_Loc );
- #endif
- }
- private:
- const std::locale* m_Loc;
- };
-
- // a toupper functor
- template
- struct to_upperF : public std::unary_function
- {
- // Constructor
- to_upperF( const std::locale& Loc ) : m_Loc( &Loc ) {}
-
- // Operation
- CharT operator ()( CharT Ch ) const
- {
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper( static_cast::type> ( Ch ));
- #else
- return std::toupper( Ch, *m_Loc );
- #endif
- }
- private:
- const std::locale* m_Loc;
- };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-
-// algorithm implementation -------------------------------------------------------------------------
-
- // Transform a range
- template
- OutputIteratorT transform_range_copy(
- OutputIteratorT Output,
- const RangeT& Input,
- FunctorT Functor)
- {
- return std::transform(
- ::boost::begin(Input),
- ::boost::end(Input),
- Output,
- Functor);
- }
-
- // Transform a range (in-place)
- template
- void transform_range(
- const RangeT& Input,
- FunctorT Functor)
- {
- std::transform(
- ::boost::begin(Input),
- ::boost::end(Input),
- ::boost::begin(Input),
- Functor);
- }
-
- template
- inline SequenceT transform_range_copy(
- const RangeT& Input,
- FunctorT Functor)
- {
- return SequenceT(
- ::boost::make_transform_iterator(
- ::boost::begin(Input),
- Functor),
- ::boost::make_transform_iterator(
- ::boost::end(Input),
- Functor));
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/classification.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/classification.hpp
deleted file mode 100644
index 704d9d20..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/classification.hpp
+++ /dev/null
@@ -1,353 +0,0 @@
-// Boost string_algo library classification.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_CLASSIFICATION_DETAIL_HPP
-#define BOOST_STRING_CLASSIFICATION_DETAIL_HPP
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// classification functors -----------------------------------------------//
-
- // is_classified functor
- struct is_classifiedF :
- public predicate_facade
- {
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor from a locale
- is_classifiedF(std::ctype_base::mask Type, std::locale const & Loc = std::locale()) :
- m_Type(Type), m_Locale(Loc) {}
- // Operation
- template
- bool operator()( CharT Ch ) const
- {
- return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch );
- }
-
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x582) && !defined(_USE_OLD_RW_STL)
- template<>
- bool operator()( char const Ch ) const
- {
- return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch );
- }
- #endif
-
- private:
- std::ctype_base::mask m_Type;
- std::locale m_Locale;
- };
-
-
- // is_any_of functor
- /*
- returns true if the value is from the specified set
- */
- template
- struct is_any_ofF :
- public predicate_facade >
- {
- private:
- // set cannot operate on const value-type
- typedef typename ::boost::remove_const::type set_value_type;
-
- public:
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor
- template
- is_any_ofF( const RangeT& Range ) : m_Size(0)
- {
- // Prepare storage
- m_Storage.m_dynSet=0;
-
- std::size_t Size=::boost::distance(Range);
- m_Size=Size;
- set_value_type* Storage=0;
-
- if(use_fixed_storage(m_Size))
- {
- // Use fixed storage
- Storage=&m_Storage.m_fixSet[0];
- }
- else
- {
- // Use dynamic storage
- m_Storage.m_dynSet=new set_value_type[m_Size];
- Storage=m_Storage.m_dynSet;
- }
-
- // Use fixed storage
- ::std::copy(::boost::begin(Range), ::boost::end(Range), Storage);
- ::std::sort(Storage, Storage+m_Size);
- }
-
- // Copy constructor
- is_any_ofF(const is_any_ofF& Other) : m_Size(Other.m_Size)
- {
- // Prepare storage
- m_Storage.m_dynSet=0;
- const set_value_type* SrcStorage=0;
- set_value_type* DestStorage=0;
-
- if(use_fixed_storage(m_Size))
- {
- // Use fixed storage
- DestStorage=&m_Storage.m_fixSet[0];
- SrcStorage=&Other.m_Storage.m_fixSet[0];
- }
- else
- {
- // Use dynamic storage
- m_Storage.m_dynSet=new set_value_type[m_Size];
- DestStorage=m_Storage.m_dynSet;
- SrcStorage=Other.m_Storage.m_dynSet;
- }
-
- // Use fixed storage
- ::std::memcpy(DestStorage, SrcStorage, sizeof(set_value_type)*m_Size);
- }
-
- // Destructor
- ~is_any_ofF()
- {
- if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0)
- {
- delete [] m_Storage.m_dynSet;
- }
- }
-
- // Assignment
- is_any_ofF& operator=(const is_any_ofF& Other)
- {
- // Handle self assignment
- if(this==&Other) return *this;
-
- // Prepare storage
- const set_value_type* SrcStorage;
- set_value_type* DestStorage;
-
- if(use_fixed_storage(Other.m_Size))
- {
- // Use fixed storage
- DestStorage=&m_Storage.m_fixSet[0];
- SrcStorage=&Other.m_Storage.m_fixSet[0];
-
- // Delete old storage if was present
- if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0)
- {
- delete [] m_Storage.m_dynSet;
- }
-
- // Set new size
- m_Size=Other.m_Size;
- }
- else
- {
- // Other uses dynamic storage
- SrcStorage=Other.m_Storage.m_dynSet;
-
- // Check what kind of storage are we using right now
- if(use_fixed_storage(m_Size))
- {
- // Using fixed storage, allocate new
- set_value_type* pTemp=new set_value_type[Other.m_Size];
- DestStorage=pTemp;
- m_Storage.m_dynSet=pTemp;
- m_Size=Other.m_Size;
- }
- else
- {
- // Using dynamic storage, check if can reuse
- if(m_Storage.m_dynSet!=0 && m_Size>=Other.m_Size && m_Size
- bool operator()( Char2T Ch ) const
- {
- const set_value_type* Storage=
- (use_fixed_storage(m_Size))
- ? &m_Storage.m_fixSet[0]
- : m_Storage.m_dynSet;
-
- return ::std::binary_search(Storage, Storage+m_Size, Ch);
- }
- private:
- // check if the size is eligible for fixed storage
- static bool use_fixed_storage(std::size_t size)
- {
- return size<=sizeof(set_value_type*)*2;
- }
-
-
- private:
- // storage
- // The actual used storage is selected on the type
- union
- {
- set_value_type* m_dynSet;
- set_value_type m_fixSet[sizeof(set_value_type*)*2];
- }
- m_Storage;
-
- // storage size
- ::std::size_t m_Size;
- };
-
- // is_from_range functor
- /*
- returns true if the value is from the specified range.
- (i.e. x>=From && x>=To)
- */
- template
- struct is_from_rangeF :
- public predicate_facade< is_from_rangeF >
- {
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor
- is_from_rangeF( CharT From, CharT To ) : m_From(From), m_To(To) {}
-
- // Operation
- template
- bool operator()( Char2T Ch ) const
- {
- return ( m_From <= Ch ) && ( Ch <= m_To );
- }
-
- private:
- CharT m_From;
- CharT m_To;
- };
-
- // class_and composition predicate
- template
- struct pred_andF :
- public predicate_facade< pred_andF >
- {
- public:
-
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor
- pred_andF( Pred1T Pred1, Pred2T Pred2 ) :
- m_Pred1(Pred1), m_Pred2(Pred2) {}
-
- // Operation
- template
- bool operator()( CharT Ch ) const
- {
- return m_Pred1(Ch) && m_Pred2(Ch);
- }
-
- private:
- Pred1T m_Pred1;
- Pred2T m_Pred2;
- };
-
- // class_or composition predicate
- template
- struct pred_orF :
- public predicate_facade< pred_orF >
- {
- public:
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor
- pred_orF( Pred1T Pred1, Pred2T Pred2 ) :
- m_Pred1(Pred1), m_Pred2(Pred2) {}
-
- // Operation
- template
- bool operator()( CharT Ch ) const
- {
- return m_Pred1(Ch) || m_Pred2(Ch);
- }
-
- private:
- Pred1T m_Pred1;
- Pred2T m_Pred2;
- };
-
- // class_not composition predicate
- template< typename PredT >
- struct pred_notF :
- public predicate_facade< pred_notF >
- {
- public:
- // Boost.ResultOf support
- typedef bool result_type;
-
- // Constructor
- pred_notF( PredT Pred ) : m_Pred(Pred) {}
-
- // Operation
- template
- bool operator()( CharT Ch ) const
- {
- return !m_Pred(Ch);
- }
-
- private:
- PredT m_Pred;
- };
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_CLASSIFICATION_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format.hpp
deleted file mode 100644
index b3987502..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format.hpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// Boost string_algo library find_format.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// find_format_copy (iterator variant) implementation -------------------------------//
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline OutputIteratorT find_format_copy_impl2(
- OutputIteratorT Output,
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult )
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_const_iterator::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Match not found - return original sequence
- Output = std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
- return Output;
- }
-
- // Copy the beginning of the sequence
- Output = std::copy( ::boost::begin(Input), ::boost::begin(M), Output );
- // Format find result
- // Copy formatted result
- Output = std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
- // Copy the rest of the sequence
- Output = std::copy( M.end(), ::boost::end(Input), Output );
-
- return Output;
- }
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline OutputIteratorT find_format_copy_impl(
- OutputIteratorT Output,
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult )
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- return ::boost::algorithm::detail::find_format_copy_impl2(
- Output,
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- } else {
- return std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
- }
- }
-
-
-// find_format_copy implementation --------------------------------------------------//
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline InputT find_format_copy_impl2(
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_const_iterator::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Match not found - return original sequence
- return InputT( Input );
- }
-
- InputT Output;
- // Copy the beginning of the sequence
- boost::algorithm::detail::insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() );
- // Copy formatted result
- boost::algorithm::detail::insert( Output, ::boost::end(Output), M.format_result() );
- // Copy the rest of the sequence
- boost::algorithm::detail::insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) );
-
- return Output;
- }
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline InputT find_format_copy_impl(
- const InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- return ::boost::algorithm::detail::find_format_copy_impl2(
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- } else {
- return Input;
- }
- }
-
- // replace implementation ----------------------------------------------------//
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline void find_format_impl2(
- InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef find_format_store<
- BOOST_STRING_TYPENAME
- range_iterator::type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- if ( !M )
- {
- // Search not found - return original sequence
- return;
- }
-
- // Replace match
- ::boost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() );
- }
-
- template<
- typename InputT,
- typename FormatterT,
- typename FindResultT >
- inline void find_format_impl(
- InputT& Input,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- ::boost::algorithm::detail::find_format_impl2(
- Input,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_all.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_all.hpp
deleted file mode 100644
index 52930c83..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_all.hpp
+++ /dev/null
@@ -1,273 +0,0 @@
-// Boost string_algo library find_format_all.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// find_format_all_copy (iterator variant) implementation ---------------------------//
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline OutputIteratorT find_format_all_copy_impl2(
- OutputIteratorT Output,
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult )
- {
- typedef BOOST_STRING_TYPENAME
- range_const_iterator::type input_iterator_type;
-
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Initialize last match
- input_iterator_type LastMatch=::boost::begin(Input);
-
- // Iterate through all matches
- while( M )
- {
- // Copy the beginning of the sequence
- Output = std::copy( LastMatch, M.begin(), Output );
- // Copy formatted result
- Output = std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output );
-
- // Proceed to the next match
- LastMatch=M.end();
- M=Finder( LastMatch, ::boost::end(Input) );
- }
-
- // Copy the rest of the sequence
- Output = std::copy( LastMatch, ::boost::end(Input), Output );
-
- return Output;
- }
-
- template<
- typename OutputIteratorT,
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline OutputIteratorT find_format_all_copy_impl(
- OutputIteratorT Output,
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult )
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- return ::boost::algorithm::detail::find_format_all_copy_impl2(
- Output,
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- } else {
- return std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
- }
- }
-
- // find_format_all_copy implementation ----------------------------------------------//
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline InputT find_format_all_copy_impl2(
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult,
- const FormatResultT& FormatResult)
- {
- typedef BOOST_STRING_TYPENAME
- range_const_iterator::type input_iterator_type;
-
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Initialize last match
- input_iterator_type LastMatch=::boost::begin(Input);
-
- // Output temporary
- InputT Output;
-
- // Iterate through all matches
- while( M )
- {
- // Copy the beginning of the sequence
- boost::algorithm::detail::insert( Output, ::boost::end(Output), LastMatch, M.begin() );
- // Copy formatted result
- boost::algorithm::detail::insert( Output, ::boost::end(Output), M.format_result() );
-
- // Proceed to the next match
- LastMatch=M.end();
- M=Finder( LastMatch, ::boost::end(Input) );
- }
-
- // Copy the rest of the sequence
- ::boost::algorithm::detail::insert( Output, ::boost::end(Output), LastMatch, ::boost::end(Input) );
-
- return Output;
- }
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline InputT find_format_all_copy_impl(
- const InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- const FindResultT& FindResult)
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- return ::boost::algorithm::detail::find_format_all_copy_impl2(
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- } else {
- return Input;
- }
- }
-
- // find_format_all implementation ------------------------------------------------//
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT,
- typename FormatResultT >
- inline void find_format_all_impl2(
- InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- FindResultT FindResult,
- FormatResultT FormatResult)
- {
- typedef BOOST_STRING_TYPENAME
- range_iterator::type input_iterator_type;
- typedef find_format_store<
- input_iterator_type,
- FormatterT,
- FormatResultT > store_type;
-
- // Create store for the find result
- store_type M( FindResult, FormatResult, Formatter );
-
- // Instantiate replacement storage
- std::deque<
- BOOST_STRING_TYPENAME range_value::type> Storage;
-
- // Initialize replacement iterators
- input_iterator_type InsertIt=::boost::begin(Input);
- input_iterator_type SearchIt=::boost::begin(Input);
-
- while( M )
- {
- // process the segment
- InsertIt=process_segment(
- Storage,
- Input,
- InsertIt,
- SearchIt,
- M.begin() );
-
- // Adjust search iterator
- SearchIt=M.end();
-
- // Copy formatted replace to the storage
- ::boost::algorithm::detail::copy_to_storage( Storage, M.format_result() );
-
- // Find range for a next match
- M=Finder( SearchIt, ::boost::end(Input) );
- }
-
- // process the last segment
- InsertIt=::boost::algorithm::detail::process_segment(
- Storage,
- Input,
- InsertIt,
- SearchIt,
- ::boost::end(Input) );
-
- if ( Storage.empty() )
- {
- // Truncate input
- ::boost::algorithm::detail::erase( Input, InsertIt, ::boost::end(Input) );
- }
- else
- {
- // Copy remaining data to the end of input
- ::boost::algorithm::detail::insert( Input, ::boost::end(Input), Storage.begin(), Storage.end() );
- }
- }
-
- template<
- typename InputT,
- typename FinderT,
- typename FormatterT,
- typename FindResultT >
- inline void find_format_all_impl(
- InputT& Input,
- FinderT Finder,
- FormatterT Formatter,
- FindResultT FindResult)
- {
- if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
- ::boost::algorithm::detail::find_format_all_impl2(
- Input,
- Finder,
- Formatter,
- FindResult,
- Formatter(FindResult) );
- }
- }
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_store.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_store.hpp
deleted file mode 100644
index b9f4a88d..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_format_store.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// Boost string_algo library find_format_store.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
-#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
-
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// temporary format and find result storage --------------------------------//
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
- template<
- typename ForwardIteratorT,
- typename FormatterT,
- typename FormatResultT >
- class find_format_store :
- public iterator_range
- {
- public:
- // typedefs
- typedef iterator_range base_type;
- typedef FormatterT formatter_type;
- typedef FormatResultT format_result_type;
-
- public:
- // Construction
- find_format_store(
- const base_type& FindResult,
- const format_result_type& FormatResult,
- const formatter_type& Formatter ) :
- base_type(FindResult),
- m_FormatResult(FormatResult),
- m_Formatter(Formatter) {}
-
- // Assignment
- template< typename FindResultT >
- find_format_store& operator=( FindResultT FindResult )
- {
- iterator_range::operator=(FindResult);
- if( !this->empty() ) {
- m_FormatResult=m_Formatter(FindResult);
- }
-
- return *this;
- }
-
- // Retrieve format result
- const format_result_type& format_result()
- {
- return m_FormatResult;
- }
-
- private:
- format_result_type m_FormatResult;
- const formatter_type& m_Formatter;
- };
-
- template
- bool check_find_result(InputT&, FindResultT& FindResult)
- {
- typedef BOOST_STRING_TYPENAME
- range_const_iterator::type input_iterator_type;
- iterator_range ResultRange(FindResult);
- return !ResultRange.empty();
- }
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_iterator.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_iterator.hpp
deleted file mode 100644
index 9b78a0f7..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/find_iterator.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// Boost string_algo library find_iterator.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
-#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
-
-#include
-#include
-#include
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// find_iterator base -----------------------------------------------//
-
- // Find iterator base
- template
- class find_iterator_base
- {
- protected:
- // typedefs
- typedef IteratorT input_iterator_type;
- typedef iterator_range match_type;
- typedef function2<
- match_type,
- input_iterator_type,
- input_iterator_type> finder_type;
-
- protected:
- // Protected construction/destruction
-
- // Default constructor
- find_iterator_base() {};
- // Copy construction
- find_iterator_base( const find_iterator_base& Other ) :
- m_Finder(Other.m_Finder) {}
-
- // Constructor
- template
- find_iterator_base( FinderT Finder, int ) :
- m_Finder(Finder) {}
-
- // Destructor
- ~find_iterator_base() {}
-
- // Find operation
- match_type do_find(
- input_iterator_type Begin,
- input_iterator_type End ) const
- {
- if (!m_Finder.empty())
- {
- return m_Finder(Begin,End);
- }
- else
- {
- return match_type(End,End);
- }
- }
-
- // Check
- bool is_null() const
- {
- return m_Finder.empty();
- }
-
- private:
- // Finder
- finder_type m_Finder;
- };
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-
-#endif // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder.hpp
deleted file mode 100644
index 209ce0b2..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder.hpp
+++ /dev/null
@@ -1,641 +0,0 @@
-// Boost string_algo library finder.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2006.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FINDER_DETAIL_HPP
-#define BOOST_STRING_FINDER_DETAIL_HPP
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-
-// find first functor -----------------------------------------------//
-
- // find a subsequence in the sequence ( functor )
- /*
- Returns a pair marking the subsequence in the sequence.
- If the find fails, functor returns
- */
- template
- struct first_finderF
- {
- typedef SearchIteratorT search_iterator_type;
-
- // Construction
- template< typename SearchT >
- first_finderF( const SearchT& Search, PredicateT Comp ) :
- m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
- first_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- PredicateT Comp ) :
- m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range result_type;
- typedef ForwardIteratorT input_iterator_type;
-
- // Outer loop
- for(input_iterator_type OuterIt=Begin;
- OuterIt!=End;
- ++OuterIt)
- {
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- input_iterator_type InnerIt=OuterIt;
- search_iterator_type SubstrIt=m_Search.begin();
- for(;
- InnerIt!=End && SubstrIt!=m_Search.end();
- ++InnerIt,++SubstrIt)
- {
- if( !( m_Comp(*InnerIt,*SubstrIt) ) )
- break;
- }
-
- // Substring matching succeeded
- if ( SubstrIt==m_Search.end() )
- return result_type( OuterIt, InnerIt );
- }
-
- return result_type( End, End );
- }
-
- private:
- iterator_range m_Search;
- PredicateT m_Comp;
- };
-
-// find last functor -----------------------------------------------//
-
- // find the last match a subsequence in the sequence ( functor )
- /*
- Returns a pair marking the subsequence in the sequence.
- If the find fails, returns
- */
- template
- struct last_finderF
- {
- typedef SearchIteratorT search_iterator_type;
- typedef first_finderF<
- search_iterator_type,
- PredicateT> first_finder_type;
-
- // Construction
- template< typename SearchT >
- last_finderF( const SearchT& Search, PredicateT Comp ) :
- m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {}
- last_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- PredicateT Comp ) :
- m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range result_type;
-
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits::iterator_category category;
-
- return findit( Begin, End, category() );
- }
-
- private:
- // forward iterator
- template< typename ForwardIteratorT >
- iterator_range
- findit(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- std::forward_iterator_tag ) const
- {
- typedef iterator_range result_type;
-
- first_finder_type first_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M=first_finder( Begin, End );
- result_type Last=M;
-
- while( M )
- {
- Last=M;
- M=first_finder( ::boost::end(M), End );
- }
-
- return Last;
- }
-
- // bidirectional iterator
- template< typename ForwardIteratorT >
- iterator_range
- findit(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- std::bidirectional_iterator_tag ) const
- {
- typedef iterator_range result_type;
- typedef ForwardIteratorT input_iterator_type;
-
- // Outer loop
- for(input_iterator_type OuterIt=End;
- OuterIt!=Begin; )
- {
- input_iterator_type OuterIt2=--OuterIt;
-
- input_iterator_type InnerIt=OuterIt2;
- search_iterator_type SubstrIt=m_Search.begin();
- for(;
- InnerIt!=End && SubstrIt!=m_Search.end();
- ++InnerIt,++SubstrIt)
- {
- if( !( m_Comp(*InnerIt,*SubstrIt) ) )
- break;
- }
-
- // Substring matching succeeded
- if( SubstrIt==m_Search.end() )
- return result_type( OuterIt2, InnerIt );
- }
-
- return result_type( End, End );
- }
-
- private:
- iterator_range m_Search;
- PredicateT m_Comp;
- };
-
-// find n-th functor -----------------------------------------------//
-
- // find the n-th match of a subsequence in the sequence ( functor )
- /*
- Returns a pair marking the subsequence in the sequence.
- If the find fails, returns
- */
- template
- struct nth_finderF
- {
- typedef SearchIteratorT search_iterator_type;
- typedef first_finderF<
- search_iterator_type,
- PredicateT> first_finder_type;
- typedef last_finderF<
- search_iterator_type,
- PredicateT> last_finder_type;
-
- // Construction
- template< typename SearchT >
- nth_finderF(
- const SearchT& Search,
- int Nth,
- PredicateT Comp) :
- m_Search(::boost::begin(Search), ::boost::end(Search)),
- m_Nth(Nth),
- m_Comp(Comp) {}
- nth_finderF(
- search_iterator_type SearchBegin,
- search_iterator_type SearchEnd,
- int Nth,
- PredicateT Comp) :
- m_Search(SearchBegin, SearchEnd),
- m_Nth(Nth),
- m_Comp(Comp) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_Nth>=0)
- {
- return find_forward(Begin, End, m_Nth);
- }
- else
- {
- return find_backward(Begin, End, -m_Nth);
- }
-
- }
-
- private:
- // Implementation helpers
- template< typename ForwardIteratorT >
- iterator_range
- find_forward(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N) const
- {
- typedef iterator_range result_type;
-
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- // Instantiate find functor
- first_finder_type first_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M( Begin, Begin );
-
- for( unsigned int n=0; n<=N; ++n )
- {
- // find next match
- M=first_finder( ::boost::end(M), End );
-
- if ( !M )
- {
- // Subsequence not found, return
- return M;
- }
- }
-
- return M;
- }
-
- template< typename ForwardIteratorT >
- iterator_range
- find_backward(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N) const
- {
- typedef iterator_range result_type;
-
- // Sanity check
- if( boost::empty(m_Search) )
- return result_type( End, End );
-
- // Instantiate find functor
- last_finder_type last_finder(
- m_Search.begin(), m_Search.end(), m_Comp );
-
- result_type M( End, End );
-
- for( unsigned int n=1; n<=N; ++n )
- {
- // find next match
- M=last_finder( Begin, ::boost::begin(M) );
-
- if ( !M )
- {
- // Subsequence not found, return
- return M;
- }
- }
-
- return M;
- }
-
-
- private:
- iterator_range m_Search;
- int m_Nth;
- PredicateT m_Comp;
- };
-
-// find head/tail implementation helpers ---------------------------//
-
- template
- iterator_range
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::forward_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range result_type;
-
- input_iterator_type It=Begin;
- for(
- unsigned int Index=0;
- Index
- iterator_range
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::random_access_iterator_tag )
- {
- typedef iterator_range result_type;
-
- if ( (End<=Begin) || ( static_cast(End-Begin) < N ) )
- return result_type( Begin, End );
-
- return result_type(Begin,Begin+N);
- }
-
- // Find head implementation
- template
- iterator_range
- find_head_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N )
- {
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits::iterator_category category;
-
- return ::boost::algorithm::detail::find_head_impl( Begin, End, N, category() );
- }
-
- template< typename ForwardIteratorT >
- iterator_range
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::forward_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range result_type;
-
- unsigned int Index=0;
- input_iterator_type It=Begin;
- input_iterator_type It2=Begin;
-
- // Advance It2 by N increments
- for( Index=0; Index
- iterator_range
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::bidirectional_iterator_tag )
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef iterator_range result_type;
-
- input_iterator_type It=End;
- for(
- unsigned int Index=0;
- Index
- iterator_range
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N,
- std::random_access_iterator_tag )
- {
- typedef iterator_range result_type;
-
- if ( (End<=Begin) || ( static_cast(End-Begin) < N ) )
- return result_type( Begin, End );
-
- return result_type( End-N, End );
- }
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- find_tail_impl(
- ForwardIteratorT Begin,
- ForwardIteratorT End,
- unsigned int N )
- {
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits::iterator_category category;
-
- return ::boost::algorithm::detail::find_tail_impl( Begin, End, N, category() );
- }
-
-
-
-// find head functor -----------------------------------------------//
-
-
- // find a head in the sequence ( functor )
- /*
- This functor find a head of the specified range. For
- a specified N, the head is a subsequence of N starting
- elements of the range.
- */
- struct head_finderF
- {
- // Construction
- head_finderF( int N ) : m_N(N) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_N>=0)
- {
- return ::boost::algorithm::detail::find_head_impl( Begin, End, m_N );
- }
- else
- {
- iterator_range Res=
- ::boost::algorithm::detail::find_tail_impl( Begin, End, -m_N );
-
- return ::boost::make_iterator_range(Begin, Res.begin());
- }
- }
-
- private:
- int m_N;
- };
-
-// find tail functor -----------------------------------------------//
-
-
- // find a tail in the sequence ( functor )
- /*
- This functor find a tail of the specified range. For
- a specified N, the head is a subsequence of N starting
- elements of the range.
- */
- struct tail_finderF
- {
- // Construction
- tail_finderF( int N ) : m_N(N) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- if(m_N>=0)
- {
- return ::boost::algorithm::detail::find_tail_impl( Begin, End, m_N );
- }
- else
- {
- iterator_range Res=
- ::boost::algorithm::detail::find_head_impl( Begin, End, -m_N );
-
- return ::boost::make_iterator_range(Res.end(), End);
- }
- }
-
- private:
- int m_N;
- };
-
-// find token functor -----------------------------------------------//
-
- // find a token in a sequence ( functor )
- /*
- This find functor finds a token specified be a predicate
- in a sequence. It is equivalent of std::find algorithm,
- with an exception that it return range instead of a single
- iterator.
-
- If bCompress is set to true, adjacent matching tokens are
- concatenated into one match.
- */
- template< typename PredicateT >
- struct token_finderF
- {
- // Construction
- token_finderF(
- PredicateT Pred,
- token_compress_mode_type eCompress=token_compress_off ) :
- m_Pred(Pred), m_eCompress(eCompress) {}
-
- // Operation
- template< typename ForwardIteratorT >
- iterator_range
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef iterator_range result_type;
-
- ForwardIteratorT It=std::find_if( Begin, End, m_Pred );
-
- if( It==End )
- {
- return result_type( End, End );
- }
- else
- {
- ForwardIteratorT It2=It;
-
- if( m_eCompress==token_compress_on )
- {
- // Find first non-matching character
- while( It2!=End && m_Pred(*It2) ) ++It2;
- }
- else
- {
- // Advance by one position
- ++It2;
- }
-
- return result_type( It, It2 );
- }
- }
-
- private:
- PredicateT m_Pred;
- token_compress_mode_type m_eCompress;
- };
-
-// find range functor -----------------------------------------------//
-
- // find a range in the sequence ( functor )
- /*
- This functor actually does not perform any find operation.
- It always returns given iterator range as a result.
- */
- template
- struct range_finderF
- {
- typedef ForwardIterator1T input_iterator_type;
- typedef iterator_range result_type;
-
- // Construction
- range_finderF(
- input_iterator_type Begin,
- input_iterator_type End ) : m_Range(Begin, End) {}
-
- range_finderF(const iterator_range& Range) :
- m_Range(Range) {}
-
- // Operation
- template< typename ForwardIterator2T >
- iterator_range
- operator()(
- ForwardIterator2T,
- ForwardIterator2T ) const
- {
-#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
- return iterator_range(this->m_Range);
-#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
- return iterator_range(m_Range.begin(), m_Range.end());
-#else
- return m_Range;
-#endif
- }
-
- private:
- iterator_range m_Range;
- };
-
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FINDER_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder_regex.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder_regex.hpp
deleted file mode 100644
index 9cb01cfa..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/finder_regex.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// Boost string_algo library find_regex.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FINDER_REGEX_DETAIL_HPP
-#define BOOST_STRING_FINDER_REGEX_DETAIL_HPP
-
-#include
-#include
-
-#include
-#include
-#include
-
-namespace boost {
- namespace algorithm {
- namespace detail {
-
-// regex find functor -----------------------------------------------//
-
- // regex search result
- template
- struct regex_search_result :
- public iterator_range
- {
- typedef regex_search_result type;
- typedef iterator_range base_type;
- typedef BOOST_STRING_TYPENAME base_type::value_type value_type;
- typedef BOOST_STRING_TYPENAME base_type::difference_type difference_type;
- typedef BOOST_STRING_TYPENAME base_type::const_iterator const_iterator;
- typedef BOOST_STRING_TYPENAME base_type::iterator iterator;
- typedef boost::match_results match_results_type;
-
- // Construction
-
- // Construction from the match result
- regex_search_result( const match_results_type& MatchResults ) :
- base_type( MatchResults[0].first, MatchResults[0].second ),
- m_MatchResults( MatchResults ) {}
-
- // Construction of empty match. End iterator has to be specified
- regex_search_result( IteratorT End ) :
- base_type( End, End ) {}
-
- regex_search_result( const regex_search_result& Other ) :
- base_type( Other.begin(), Other.end() ),
- m_MatchResults( Other.m_MatchResults ) {}
-
- // Assignment
- regex_search_result& operator=( const regex_search_result& Other )
- {
- base_type::operator=( Other );
- m_MatchResults=Other.m_MatchResults;
- return *this;
- }
-
- // Match result retrieval
- const match_results_type& match_results() const
- {
- return m_MatchResults;
- }
-
- private:
- // Saved match result
- match_results_type m_MatchResults;
- };
-
- // find_regex
- /*
- Regex based search functor
- */
- template
- struct find_regexF
- {
- typedef RegExT regex_type;
- typedef const RegExT& regex_reference_type;
-
- // Construction
- find_regexF( regex_reference_type Rx, match_flag_type MatchFlags = match_default ) :
- m_Rx(Rx), m_MatchFlags(MatchFlags) {}
-
- // Operation
- template< typename ForwardIteratorT >
- regex_search_result
- operator()(
- ForwardIteratorT Begin,
- ForwardIteratorT End ) const
- {
- typedef ForwardIteratorT input_iterator_type;
- typedef regex_search_result result_type;
-
- // instantiate match result
- match_results result;
- // search for a match
- if ( ::boost::regex_search( Begin, End, result, m_Rx, m_MatchFlags ) )
- {
- // construct a result
- return result_type( result );
- }
- else
- {
- // empty result
- return result_type( End );
- }
- }
-
- private:
- regex_reference_type m_Rx; // Regexp
- match_flag_type m_MatchFlags; // match flags
- };
-
- } // namespace detail
- } // namespace algorithm
-} // namespace boost
-
-#endif // BOOST_STRING_FIND_DETAIL_HPP
diff --git a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/formatter.hpp b/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/formatter.hpp
deleted file mode 100644
index c071822f..00000000
--- a/third_party/ycmd/cpp/BoostParts/boost/algorithm/string/detail/formatter.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// Boost string_algo library formatter.hpp header file ---------------------------//
-
-// Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_STRING_FORMATTER_DETAIL_HPP
-#define BOOST_STRING_FORMATTER_DETAIL_HPP
-
-
-#include
-#include
-#include
-#include