首页 > 解决方案 > 格式化结构/类宏定义

问题描述

我们目前正在使用Microsoft.VisualStudio.TestTools.CppUnitTestFramework,它使用宏定义测试类,例如:

TEST_CLASS(Class1)
{    
public:    
    TEST_METHOD(Method1)
    {
        Logger::WriteMessage("In Method1");
        Assert::AreEqual(0, 0);
    }   
};

我很难让 clang 格式“理解” TEST_CLASS 是一个结构/类定义。在尝试了几件事之后,我得到的当前最佳解决方案是定义两个新的宏来包装类:

#define START_TEST(className) TEST_CLASS(className){
#define END_TEST };

并将它们定义为块开始/结束:

MacroBlockBegin: ^START_TEST.*$
MacroBlockEnd: ^END_TEST.*$

我想知道是否有更好的解决方案不涉及添加更多宏......

标签: clang-format

解决方案


推荐阅读