diff options
author | Jacques Lucke <jacques@blender.org> | 2022-01-10 14:28:23 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2022-01-10 14:28:33 +0300 |
commit | bd8fa07a3df6d55ca83778253a3ccaa5a9ca4660 (patch) | |
tree | 20b66dc066354ab9983964b3f3008f23ad29b147 /source/blender/blenlib/BLI_memory_utils.hh | |
parent | 934db6a8201afe9b137ff41a3bf3f1da6b32ca02 (diff) |
Cleanup: add utility macro to simplify using std::enable_if
Diffstat (limited to 'source/blender/blenlib/BLI_memory_utils.hh')
-rw-r--r-- | source/blender/blenlib/BLI_memory_utils.hh | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_memory_utils.hh b/source/blender/blenlib/BLI_memory_utils.hh index 9a5be79b61e..37691017c12 100644 --- a/source/blender/blenlib/BLI_memory_utils.hh +++ b/source/blender/blenlib/BLI_memory_utils.hh @@ -557,4 +557,13 @@ Container &move_assign_container(Container &dst, Container &&src) noexcept( return dst; } +/** + * Utility macro that wraps `std::enable_if` to make it a bit easier to use and less verbose for + * SFINAE in common cases. + * + * \note Often one has to invoke this macro with double parenthesis. That's because the condition + * often contains a comma and angle brackets are not recognized as parenthesis by the preprocessor. + */ +#define BLI_ENABLE_IF(condition) typename std::enable_if_t<condition> * = nullptr + } // namespace blender |