Cleanup: add utility macro to simplify using std::enable_if

This commit is contained in:
2022-01-10 12:28:23 +01:00
parent 934db6a820
commit bd8fa07a3d
6 changed files with 28 additions and 19 deletions

View File

@@ -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