aac39307e8
This macro has never been defined by libstdc++, despite supporting the parallel algorithms. It should have a different value for C++17 and C++20, because P1001R2 should not be supported in C++17, but unsequenced_policy is defined for C++17 (see PR p4702). * include/std/execution (__cpp_lib_execution): Define to indicate support for P0024R2 and P1001R2. * include/std/version (__cpp_lib_execution): Define. * testsuite/25_algorithms/pstl/feature_test.cc: Only test macro defined by <algorithm>, move other tests to new tests ... * testsuite/25_algorithms/pstl/feature_test-2.cc: New test. * testsuite/25_algorithms/pstl/feature_test-3.cc: New test. * testsuite/25_algorithms/pstl/feature_test-4.cc: New test. * testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
// <execution> -*- C++ -*-
|
|
|
|
// Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
|
//
|
|
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
|
// any later version.
|
|
|
|
// This library 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.
|
|
|
|
// Under Section 7 of GPL version 3, you are granted additional
|
|
// permissions described in the GCC Runtime Library Exception, version
|
|
// 3.1, as published by the Free Software Foundation.
|
|
|
|
// You should have received a copy of the GNU General Public License and
|
|
// a copy of the GCC Runtime Library Exception along with this program;
|
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
// <http://www.gnu.org/licenses/>.
|
|
|
|
#ifndef _GLIBCXX_EXECUTION
|
|
#define _GLIBCXX_EXECUTION 1
|
|
|
|
#pragma GCC system_header
|
|
|
|
#if __cplusplus >= 201703L
|
|
# include <bits/c++config.h>
|
|
# include <pstl/glue_execution_defs.h>
|
|
|
|
# define _PSTL_EXECUTION_POLICIES_DEFINED 1
|
|
|
|
// Algorithm implementation
|
|
# if _PSTL_ALGORITHM_FORWARD_DECLARED
|
|
# include <pstl/glue_algorithm_impl.h>
|
|
# endif
|
|
|
|
// Numeric implementation
|
|
# if _PSTL_NUMERIC_FORWARD_DECLARED
|
|
# include <pstl/glue_numeric_impl.h>
|
|
# endif
|
|
|
|
// Memory implementation
|
|
# if _PSTL_NUMERIC_FORWARD_DECLARED
|
|
# include <pstl/glue_memory_impl.h>
|
|
# endif
|
|
|
|
// Feature test macro for parallel algorithms
|
|
# define __cpp_lib_parallel_algorithm 201603L
|
|
# define __cpp_lib_execution 201902L
|
|
|
|
#endif // C++17
|
|
|
|
#endif /* _GLIBCXX_EXECUTION */
|