// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

export namespace std {
  using std::size_t _LIBCPP_USING_IF_EXISTS;

  using std::memchr _LIBCPP_USING_IF_EXISTS;
  using std::memcmp _LIBCPP_USING_IF_EXISTS;
  using std::memcpy _LIBCPP_USING_IF_EXISTS;
  using std::memmove _LIBCPP_USING_IF_EXISTS;
  using std::memset _LIBCPP_USING_IF_EXISTS;
  using std::strcat _LIBCPP_USING_IF_EXISTS;
  using std::strchr _LIBCPP_USING_IF_EXISTS;
  using std::strcmp _LIBCPP_USING_IF_EXISTS;
  using std::strcoll _LIBCPP_USING_IF_EXISTS;
  using std::strcpy _LIBCPP_USING_IF_EXISTS;
  using std::strcspn _LIBCPP_USING_IF_EXISTS;
  using std::strerror _LIBCPP_USING_IF_EXISTS;
  using std::strlen _LIBCPP_USING_IF_EXISTS;
  using std::strncat _LIBCPP_USING_IF_EXISTS;
  using std::strncmp _LIBCPP_USING_IF_EXISTS;
  using std::strncpy _LIBCPP_USING_IF_EXISTS;
  using std::strpbrk _LIBCPP_USING_IF_EXISTS;
  using std::strrchr _LIBCPP_USING_IF_EXISTS;
  using std::strspn _LIBCPP_USING_IF_EXISTS;
  using std::strstr _LIBCPP_USING_IF_EXISTS;
  using std::strtok _LIBCPP_USING_IF_EXISTS;
  using std::strxfrm _LIBCPP_USING_IF_EXISTS;
} // namespace std
