mercredi 28 juillet 2021

Stringify parameters in macro

#define MY_ASSERT_TEST(parA, parB, parC) do {                                           \
    for (int i = 0; i < TestStruct::parB::TestData_parC_TestOptions_Len; i += 1)        \
    {                                                                                   \
        if (parA == TestStruct::parB::TestData_parC_TestOptions_i)                      \
            return;                                                                     \
    }                                                                                   \
    MY_LOG("MY_ASSERT_TEST Warning: %s", #parA);                                        \
} while(0)

It replaces parB correctly, but not parC and i.

I have tried something like TestStruct::parB::TestData_#parC_TestOptions_#i.

or TestStruct::parB::TestData_(#parC)_TestOptions_(#i)

Aucun commentaire:

Enregistrer un commentaire