|
175 | 175 | #endif
|
176 | 176 | #endif
|
177 | 177 |
|
| 178 | +#ifndef TOML_NVCC |
| 179 | +#ifdef __NVCOMPILER_MAJOR__ |
| 180 | +#define TOML_NVCC __NVCOMPILER_MAJOR__ |
| 181 | +#else |
| 182 | +#define TOML_NVCC 0 |
| 183 | +#endif |
| 184 | +#endif |
| 185 | + |
178 | 186 | //#=====================================================================================================================
|
179 | 187 | //# ARCHITECTURE
|
180 | 188 | //#=====================================================================================================================
|
|
395 | 403 | #endif
|
396 | 404 |
|
397 | 405 | // TOML_ALWAYS_INLINE
|
| 406 | +#ifndef TOML_ALWAYS_INLINE |
398 | 407 | #ifdef _MSC_VER
|
399 | 408 | #define TOML_ALWAYS_INLINE __forceinline
|
400 | 409 | #elif TOML_GCC || TOML_CLANG || TOML_HAS_ATTR(__always_inline__)
|
|
404 | 413 | #else
|
405 | 414 | #define TOML_ALWAYS_INLINE inline
|
406 | 415 | #endif
|
| 416 | +#endif |
407 | 417 |
|
408 | 418 | // TOML_NEVER_INLINE
|
| 419 | +#ifndef TOML_NEVER_INLINE |
409 | 420 | #ifdef _MSC_VER
|
410 | 421 | #define TOML_NEVER_INLINE TOML_DECLSPEC(noinline)
|
411 | 422 | #elif TOML_CUDA // https://gitlab.gnome.org/GNOME/glib/-/issues/2555
|
|
418 | 429 | #ifndef TOML_NEVER_INLINE
|
419 | 430 | #define TOML_NEVER_INLINE
|
420 | 431 | #endif
|
| 432 | +#endif |
421 | 433 |
|
422 | 434 | // MSVC attributes
|
| 435 | +#ifndef TOML_ABSTRACT_INTERFACE |
423 | 436 | #define TOML_ABSTRACT_INTERFACE TOML_DECLSPEC(novtable)
|
| 437 | +#endif |
| 438 | +#ifndef TOML_EMPTY_BASES |
424 | 439 | #define TOML_EMPTY_BASES TOML_DECLSPEC(empty_bases)
|
| 440 | +#endif |
425 | 441 |
|
426 | 442 | // TOML_TRIVIAL_ABI
|
| 443 | +#ifndef TOML_TRIVIAL_ABI |
427 | 444 | #if TOML_CLANG || TOML_HAS_ATTR(__trivial_abi__)
|
428 | 445 | #define TOML_TRIVIAL_ABI TOML_ATTR(__trivial_abi__)
|
429 | 446 | #else
|
430 | 447 | #define TOML_TRIVIAL_ABI
|
431 | 448 | #endif
|
| 449 | +#endif |
432 | 450 |
|
433 | 451 | // TOML_NODISCARD
|
| 452 | +#ifndef TOML_NODISCARD |
434 | 453 | #if TOML_CPP >= 17 && TOML_HAS_CPP_ATTR(nodiscard) >= 201603
|
435 | 454 | #define TOML_NODISCARD [[nodiscard]]
|
436 | 455 | #elif TOML_CLANG || TOML_GCC || TOML_HAS_ATTR(__warn_unused_result__)
|
437 | 456 | #define TOML_NODISCARD TOML_ATTR(__warn_unused_result__)
|
438 | 457 | #else
|
439 | 458 | #define TOML_NODISCARD
|
440 | 459 | #endif
|
| 460 | +#endif |
441 | 461 |
|
442 | 462 | // TOML_NODISCARD_CTOR
|
| 463 | +#ifndef TOML_NODISCARD_CTOR |
443 | 464 | #if TOML_CPP >= 17 && TOML_HAS_CPP_ATTR(nodiscard) >= 201907
|
444 | 465 | #define TOML_NODISCARD_CTOR [[nodiscard]]
|
445 | 466 | #else
|
446 | 467 | #define TOML_NODISCARD_CTOR
|
447 | 468 | #endif
|
| 469 | +#endif |
448 | 470 |
|
449 | 471 | // pure + const
|
450 | 472 | #ifndef TOML_PURE
|
|
494 | 516 | #endif
|
495 | 517 |
|
496 | 518 | // TOML_ASSUME
|
| 519 | +#ifndef TOML_ASSUME |
497 | 520 | #ifdef _MSC_VER
|
498 | 521 | #define TOML_ASSUME(expr) __assume(expr)
|
499 | 522 | #elif TOML_ICC || TOML_CLANG || TOML_HAS_BUILTIN(__builtin_assume)
|
|
505 | 528 | #else
|
506 | 529 | #define TOML_ASSUME(expr) static_cast<void>(0)
|
507 | 530 | #endif
|
| 531 | +#endif |
508 | 532 |
|
509 | 533 | // TOML_UNREACHABLE
|
| 534 | +#ifndef TOML_UNREACHABLE |
510 | 535 | #ifdef _MSC_VER
|
511 | 536 | #define TOML_UNREACHABLE __assume(0)
|
512 | 537 | #elif TOML_ICC || TOML_CLANG || TOML_GCC || TOML_HAS_BUILTIN(__builtin_unreachable)
|
513 | 538 | #define TOML_UNREACHABLE __builtin_unreachable()
|
514 | 539 | #else
|
515 | 540 | #define TOML_UNREACHABLE static_cast<void>(0)
|
516 | 541 | #endif
|
| 542 | +#endif |
517 | 543 |
|
518 | 544 | // TOML_LIKELY
|
519 | 545 | #if TOML_CPP >= 20 && TOML_HAS_CPP_ATTR(likely) >= 201803
|
|
0 commit comments