clang代码格式化实用程序中断仅在Windows上定义吗?

时间:2013-09-07 01:31:07

标签: c++ visual-studio visual-studio-2012 clang clang-format

VS有一个很好的clang plugin支持代码格式化。这很好但它打破了所有复杂的定义:

说我们有:

#include <boost/preprocessor.hpp>
#include <boost/shared_ptr.hpp>

#define NM_PP_VARIADIC_MAX_LENGTH 5

#define NM_PP_TYPE_DECL(z, n, T) \
class BOOST_PP_CAT(T, n )

#define NM_PP_TYPE(z, n, T) \
    BOOST_PP_CAT(T, n )

#define NM_PP_ARGUMENT_DECL(z, n, T) \
    BOOST_PP_CAT(T, n ) BOOST_PP_CAT(t, n )

这是我们在格式化之后得到的:

#include <boost/preprocessor.hpp>
#include <boost/shared_ptr.hpp>

#define NM_PP_VARIADIC_MAX_LENGTH 5

#define NM_PP_TYPE_DECL(z, n, T) \
class BOOST_PP_CAT(T, n)

#define NM_PP_TYPE(z, n, T)
BOOST_PP_CAT(T, n)

#define NM_PP_ARGUMENT_DECL(z, n, T)
BOOST_PP_CAT(T, n) BOOST_PP_CAT(t, n)

正如您所看到的,此类代码无法编译,大多数\都会被删除。有没有办法将其配置为不删除\

我尝试使用LLVM之类的默认配置并查看formatting arguments,但我看不到定义这种残酷代码优化的位置。

1 个答案:

答案 0 :(得分:0)

我想说这是由于使用的文件结尾,通常是Windows中的CR + LF。尝试将文件转换为unix样式行结尾(LF),它应该可以工作。