ALib C++ Framework
by
Library Version:
2605 R0
Documentation generated by
Loading...
Searching...
No Matches
ALib
src
alib
system
system.prepro.hpp
Go to the documentation of this file.
1
//==================================================================================================
2
/// \file
3
/// This header-file is part of the \aliblong.
4
///
5
/// Copyright 2013-2026 A-Worx GmbH, Germany.
6
/// Published under #"mainpage_license".
7
//==================================================================================================
8
#ifndef HPP_ALIB_SYSTEM_PP
9
#define HPP_ALIB_SYSTEM_PP
10
#pragma once
11
12
#ifndef HPP_ALIB
13
# include "
alib/alib.prepro.hpp
"
14
#endif
15
#if ALIB_SYSTEM
16
17
//##################################################################################################
18
// Macro introduced by module ALib.System
19
//##################################################################################################
20
// Configuration Macro ALIB_PATH_CHARACTERS_WIDE and macro A_PATH for literals
21
#if !defined(ALIB_PATH_CHARACTERS_WIDE)
22
# if defined(_WIN32)
23
# define ALIB_PATH_CHARACTERS_WIDE 1
24
# else
25
# define ALIB_PATH_CHARACTERS_WIDE 0
26
# endif
27
#endif
28
29
#if ALIB_PATH_CHARACTERS_WIDE
30
# define A_PATH(literal) L##literal
31
#else
32
# define A_PATH(literal) literal
33
#endif
34
35
#if ALIB_CHARACTERS_WIDE == ALIB_PATH_CHARACTERS_WIDE
36
# define ALIB_PATH_TO_STRING( src,dest,bufSize ) decltype(src)& dest(src);
37
# define ALIB_PATH_TO_STRING_ARG( src,bufSize ) src;
38
# define ALIB_STRING_TO_PATH( src,dest,bufSize ) decltype(src)& dest(src);
39
# define ALIB_STRING_TO_PATH_ARG( src,bufSize ) src;
40
#else
41
# define ALIB_PATH_TO_STRING( src,dest,bufSize ) alib::strings::TLocalString<alib::characters::character ,bufSize> dest(src);
42
# define ALIB_PATH_TO_STRING_ARG( src,bufSize ) alib::strings::TLocalString<alib::characters::character ,bufSize>(src);
43
# define ALIB_STRING_TO_PATH( src,dest,bufSize ) alib::strings::TLocalString<alib::PathCharType ,bufSize> dest(src);
44
# define ALIB_STRING_TO_PATH_ARG( src,bufSize ) alib::strings::TLocalString<alib::PathCharType ,bufSize>(src);
45
#endif
46
47
#if !ALIB_PATH_CHARACTERS_WIDE
48
# define ALIB_PATH_TO_NARROW( src,dest,bufSize ) decltype(src)& dest(src);
49
# define ALIB_PATH_TO_NARROW_ARG( src,bufSize ) src;
50
#else
51
# define ALIB_PATH_TO_NARROW( src,dest,bufSize ) alib::strings::TLocalString<alib::characters::nchar, bufSize> dest(src);
52
# define ALIB_PATH_TO_NARROW_ARG( src,bufSize ) alib::strings::TLocalString<alib::characters::nchar, bufSize>(src);
53
#endif
54
55
// Configuration Macro ALIB_SYSTEM_FILE_STATUS_IMPL
56
#if !defined(ALIB_SYSTEM_FORCE_STD_FILE_STATUS)
57
# define ALIB_SYSTEM_FORCE_STD_FILE_STATUS 0
58
#endif
59
60
#if defined(ALIB_SYSTEM_FILE_STATUS_IMPL)
61
# error "Configuration Macro ALIB_SYSTEM_FILE_STATUS_IMPL must not be set from outside! Use ALIB_SYSTEM_FORCE_STD_FILE_STATUS."
62
#endif
63
64
#define ALIB_SYSTEM_FILE_STD_STATUS 1
65
#define ALIB_SYSTEM_FILE_POSIX_STATUS 2
66
67
#if ( ( defined(__GLIBCXX__) && !defined(__MINGW32__) ) \
68
|| defined(__APPLE__) \
69
|| defined(_LIBCPP_VERSION) \
70
|| defined(__ANDROID_NDK__) ) \
71
&& !ALIB_SYSTEM_FORCE_STD_FILE_STATUS
72
# define ALIB_SYSTEM_FILE_STATUS_IMPL ALIB_SYSTEM_FILE_POSIX_STATUS
73
#else
74
# define ALIB_SYSTEM_FILE_STATUS_IMPL ALIB_SYSTEM_FILE_STD_STATUS
75
#endif
76
77
78
79
80
81
#endif
82
#endif
// HPP_ALIB_SYSTEM_PP
alib.prepro.hpp