mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-08 04:02:27 +00:00
esp_attr: add flag_attr to support enums used as flags
This commit is contained in:
@@ -319,3 +319,31 @@ TEST_CASE("can call std::function and bind", "[cxx]")
|
||||
|
||||
#endif
|
||||
|
||||
/* Tests below are done in the compile time, don't actually get run. */
|
||||
/* Check whether a enumerator flag can be used in C++ */
|
||||
|
||||
|
||||
template<typename T> __attribute__((unused)) static void test_binary_operators()
|
||||
{
|
||||
T flag1 = (T)0;
|
||||
T flag2 = (T)0;
|
||||
flag1 = ~flag1;
|
||||
flag1 = flag1 | flag2;
|
||||
flag1 = flag1 & flag2;
|
||||
flag1 = flag1 ^ flag2;
|
||||
flag1 = flag1 >> 2;
|
||||
flag1 = flag1 << 2;
|
||||
flag1 |= flag2;
|
||||
flag1 &= flag2;
|
||||
flag1 ^= flag2;
|
||||
flag1 >>= 2;
|
||||
flag1 <<= 2;
|
||||
}
|
||||
|
||||
//Add more types here. If any flags cannot pass the build, use FLAG_ATTR in esp_attr.h
|
||||
#include "hal/timer_types.h"
|
||||
template void test_binary_operators<timer_intr_t>();
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user