2 //===--------------------------- __config ---------------------------------===//
4 // The LLVM Compiler Infrastructure
6 // This file is dual licensed under the MIT and the University of Illinois Open
7 // Source Licenses. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef _LIBCPP_EXPERIMENTAL_CONFIG
12 #define _LIBCPP_EXPERIMENTAL_CONFIG
16 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
17 #pragma GCC system_header
20 #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental {
21 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL } }
22 #define _VSTD_EXPERIMENTAL std::experimental
24 #define _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 {
25 #define _LIBCPP_END_NAMESPACE_LFTS } } }
26 #define _VSTD_LFTS _VSTD_EXPERIMENTAL::fundamentals_v1
28 #define _LIBCPP_BEGIN_NAMESPACE_LFTS_V2 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v2 {
29 #define _LIBCPP_END_NAMESPACE_LFTS_V2 } } }
30 #define _VSTD_LFTS_V2 _VSTD_EXPERIMENTAL::fundamentals_v2
32 #define _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR _LIBCPP_BEGIN_NAMESPACE_LFTS namespace pmr {
33 #define _LIBCPP_END_NAMESPACE_LFTS_PMR _LIBCPP_END_NAMESPACE_LFTS }
34 #define _VSTD_LFTS_PMR _VSTD_LFTS::pmr
36 #define _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS _LIBCPP_BEGIN_NAMESPACE_STD \
37 namespace chrono { namespace experimental { inline namespace fundamentals_v1 {
38 #define _LIBCPP_END_NAMESPACE_CHRONO_LFTS _LIBCPP_END_NAMESPACE_STD } } }
40 #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM \
41 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace filesystem { \
44 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \
45 } } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
47 #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \
48 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 {
50 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \
51 } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
53 #define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1
55 #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD \
56 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace parallelism_v2 {
58 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD \
59 } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
61 #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD_ABI \
62 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD namespace simd_abi {
64 #define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD_ABI \
65 } _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD
67 // TODO: support more targets
69 #define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 32
71 #define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 16