-
Notifications
You must be signed in to change notification settings - Fork 32
Interoperability
Thomas Kemmer edited this page Nov 21, 2017
·
1 revision
BALL internally uses preprocessor macros to distinguish whether a particular header file or language feature is available on a supported target platform. These macros are not intended for use outside of BALL and subject to change without deprecation across BALL releases.
BALL_HAS_MODE_T
- Prerequisite:
mode_t
type is available in<sys/stat.h>
- Unsupported platforms: MSVC (all versions; current: 2017)
BALL_HAS_NOEXCEPT
- Prerequisite:
noexcept
keyword is available - Unsupported platforms: MSVC 2013
BALL_HAS_STD_STRING_CONST_ITERATOR_FUNCTIONS
- Prerequisite: some
std::string
functions allowconst_iterator
arguments instead ofiterator
- Unsupported platforms: GCC 4.8 (CentOS 7, Ubuntu 14.04 LTS)
BALL_HAS_STD_STRING_CONST_ITERATOR_INITLIST_INSERT
- Prerequisite:
std::string
offersinsert(const_iterator, initializer_list<char>)
function - Unsupported platforms: GCC (all versions; current: 7.2)
BALL_HAS_THREAD_LOCAL
- Prerequisite: Thread-local storage support via
thread_local
keyword - Unsupported platforms: MSVC 2013