xref: /freebsd/contrib/llvm-project/libcxx/src/vector.cpp (revision cb14a3fe5122c879eae1fb480ed7ce82a699ddb6)
1349cc55cSDimitry Andric //===----------------------------------------------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
981ad6265SDimitry Andric #include <vector>
100b57cec5SDimitry Andric 
110b57cec5SDimitry Andric _LIBCPP_BEGIN_NAMESPACE_STD
120b57cec5SDimitry Andric 
13d56accc7SDimitry Andric #ifndef _LIBCPP_ABI_DO_NOT_EXPORT_VECTOR_BASE_COMMON
14d56accc7SDimitry Andric 
15d56accc7SDimitry Andric template <bool>
16d56accc7SDimitry Andric struct __vector_base_common;
17d56accc7SDimitry Andric 
18d56accc7SDimitry Andric template <>
19d56accc7SDimitry Andric struct __vector_base_common<true> {
20d56accc7SDimitry Andric   _LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_length_error() const;
21d56accc7SDimitry Andric   _LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_out_of_range() const;
22d56accc7SDimitry Andric };
23d56accc7SDimitry Andric 
24*cb14a3feSDimitry Andric void __vector_base_common<true>::__throw_length_error() const { std::__throw_length_error("vector"); }
25349cc55cSDimitry Andric 
26*cb14a3feSDimitry Andric void __vector_base_common<true>::__throw_out_of_range() const { std::__throw_out_of_range("vector"); }
270b57cec5SDimitry Andric 
28d56accc7SDimitry Andric #endif // _LIBCPP_ABI_DO_NOT_EXPORT_VECTOR_BASE_COMMON
29d56accc7SDimitry Andric 
300b57cec5SDimitry Andric _LIBCPP_END_NAMESPACE_STD
31