xref: /llvm-project/pstl/test/support/stdlib/execution (revision 4d88b17b3f282b1023400837c3249c9f27774eca)
1*4d88b17bSLouis Dionne// -*- C++ -*-
2*4d88b17bSLouis Dionne//===-- execution ---------------------------------------------------------===//
3*4d88b17bSLouis Dionne//
4*4d88b17bSLouis Dionne// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*4d88b17bSLouis Dionne// See https://llvm.org/LICENSE.txt for license information.
6*4d88b17bSLouis Dionne// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*4d88b17bSLouis Dionne//
8*4d88b17bSLouis Dionne//===----------------------------------------------------------------------===//
9*4d88b17bSLouis Dionne
10*4d88b17bSLouis Dionne#ifndef _TEST_SUPPORT_STDLIB_EXECUTION
11*4d88b17bSLouis Dionne#define _TEST_SUPPORT_STDLIB_EXECUTION
12*4d88b17bSLouis Dionne
13*4d88b17bSLouis Dionne// #include_next <execution> // None of the standard libraries PSTL is built on top have the <execution> header yet.
14*4d88b17bSLouis Dionne
15*4d88b17bSLouis Dionne#include <pstl/internal/pstl_config.h>
16*4d88b17bSLouis Dionne#include <pstl/internal/execution_defs.h>
17*4d88b17bSLouis Dionne
18*4d88b17bSLouis Dionne#define _PSTL_EXECUTION_POLICIES_DEFINED 1
19*4d88b17bSLouis Dionne
20*4d88b17bSLouis Dionne#if _PSTL_ALGORITHM_FORWARD_DECLARED
21*4d88b17bSLouis Dionne#    include <pstl/internal/glue_algorithm_impl.h>
22*4d88b17bSLouis Dionne#endif
23*4d88b17bSLouis Dionne
24*4d88b17bSLouis Dionne#if _PSTL_MEMORY_FORWARD_DECLARED
25*4d88b17bSLouis Dionne#    include <pstl/internal/glue_memory_impl.h>
26*4d88b17bSLouis Dionne#endif
27*4d88b17bSLouis Dionne
28*4d88b17bSLouis Dionne#if _PSTL_NUMERIC_FORWARD_DECLARED
29*4d88b17bSLouis Dionne#    include <pstl/internal/glue_numeric_impl.h>
30*4d88b17bSLouis Dionne#endif
31*4d88b17bSLouis Dionne
32*4d88b17bSLouis Dionne#if _PSTL_CPP17_EXECUTION_POLICIES_PRESENT
33*4d88b17bSLouis Dionne_PSTL_PRAGMA_MESSAGE_POLICIES("The <Parallel STL> execution policies are defined in the namespace __pstl::execution")
34*4d88b17bSLouis Dionne#else
35*4d88b17bSLouis Dionne#    include <pstl/internal/glue_execution_defs.h>
36*4d88b17bSLouis Dionne_PSTL_PRAGMA_MESSAGE_POLICIES(
37*4d88b17bSLouis Dionne    "The <Parallel STL> execution policies are injected into the standard namespace std::execution")
38*4d88b17bSLouis Dionne#endif
39*4d88b17bSLouis Dionne
40*4d88b17bSLouis Dionne//TODO: __pstl::execution namespace is injected into the pstl::execution namespace when the implementation is not a part of
41*4d88b17bSLouis Dionne// standard C++ library
42*4d88b17bSLouis Dionnenamespace pstl
43*4d88b17bSLouis Dionne{
44*4d88b17bSLouis Dionnenamespace execution
45*4d88b17bSLouis Dionne{
46*4d88b17bSLouis Dionneusing namespace __pstl::execution;
47*4d88b17bSLouis Dionne}
48*4d88b17bSLouis Dionne} // namespace pstl
49*4d88b17bSLouis Dionne
50*4d88b17bSLouis Dionne#endif /* _TEST_SUPPORT_STDLIB_EXECUTION */
51