mirror of
https://github.com/microsoft/GSL.git
synced 2025-01-30 23:34:59 -05:00
Remove GSL_ASSUME
(unused code)
This is not specified in the C++ Core Guidelines as part of GSL, so it should not be documented or supported with a GSL name. And since we don't use it in the GSL repo either, we should just remove it directly. For more about why assumptions are a dangerous blunt instrument, including that they actively eliminate contracts checks including GSL's `Expects` and `Ensures`, see [P2064](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2064r0.pdf).
This commit is contained in:
parent
c20a54c8e7
commit
b34dc221a1
@ -57,20 +57,6 @@
|
|||||||
#define GSL_STRINGIFY_DETAIL(x) #x
|
#define GSL_STRINGIFY_DETAIL(x) #x
|
||||||
#define GSL_STRINGIFY(x) GSL_STRINGIFY_DETAIL(x)
|
#define GSL_STRINGIFY(x) GSL_STRINGIFY_DETAIL(x)
|
||||||
|
|
||||||
//
|
|
||||||
// GSL_ASSUME(cond)
|
|
||||||
//
|
|
||||||
// Tell the optimizer that the predicate cond must hold. It is unspecified
|
|
||||||
// whether or not cond is actually evaluated.
|
|
||||||
//
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#define GSL_ASSUME(cond) __assume(cond)
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define GSL_ASSUME(cond) ((cond) ? static_cast<void>(0) : __builtin_unreachable())
|
|
||||||
#else
|
|
||||||
#define GSL_ASSUME(cond) static_cast<void>((cond) ? 0 : 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// GSL.assert: assertions
|
// GSL.assert: assertions
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user