/** * If your judgment is better than the compiler's (i.e. you've profiled it), * you can use SK_ALWAYS_INLINE to force inlining. E.g. * inline void someMethod() { ... } // may not be inlined * SK_ALWAYS_INLINE void someMethod() { ... } // should always be inlined
*/ #if !defined(SK_ALWAYS_INLINE) # ifdefined(SK_BUILD_FOR_WIN) # define SK_ALWAYS_INLINE __forceinline # else # define SK_ALWAYS_INLINE SK_ATTRIBUTE(always_inline) inline # endif #endif
/** * If your judgment is better than the compiler's (i.e. you've profiled it), * you can use SK_NEVER_INLINE to prevent inlining.
*/ #if !defined(SK_NEVER_INLINE) # ifdefined(SK_BUILD_FOR_WIN) # define SK_NEVER_INLINE __declspec(noinline) # else # define SK_NEVER_INLINE SK_ATTRIBUTE(noinline) # endif #endif
/** * Used to annotate a function as taking printf style arguments. * `A` is the (1 based) index of the format string argument. * `B` is the (1 based) index of the first argument used by the format string.
*/ #if !defined(SK_PRINTF_LIKE) # define SK_PRINTF_LIKE(A, B) SK_ATTRIBUTE(format(printf, (A), (B))) #endif
/** * Used to ignore sanitizer warnings.
*/ #if !defined(SK_NO_SANITIZE) # define SK_NO_SANITIZE(A) SK_ATTRIBUTE(no_sanitize(A)) #endif
/** * Helper macro to define no_sanitize attributes only with clang.
*/ #ifdefined(__clang__) && defined(__has_attribute) #if __has_attribute(no_sanitize) #define SK_CLANG_NO_SANITIZE(A) SK_NO_SANITIZE(A) #endif #endif
/** * Annotates a class' non-trivial special functions as trivial for the purposes of calls. * Allows a class with a non-trivial destructor to be __is_trivially_relocatable. * Use of this attribute on a public API breaks platform ABI. * Annotated classes may not hold pointers derived from `this`. * Annotated classes must implement move+delete as equivalent to memcpy+free. * Use may require more complete types, as callee destroys. * * https://clang.llvm.org/docs/AttributeReference.html#trivial-abi * https://libcxx.llvm.org/DesignDocs/UniquePtrTrivialAbi.html
*/ #if !defined(SK_TRIVIAL_ABI) # define SK_TRIVIAL_ABI #endif
#endif
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.