[cfe-dev] clang-format macros and typedefs

Piotr Padlewski via cfe-dev cfe-dev at lists.llvm.org
Fri Nov 13 12:00:50 PST 2015


Hi folks,
so recently I was enforcing clang-format in the team that I work with, and
we found out 2 things that can't be configured and that are formated not in
the way that we would like to:

1. typedefs
so many times people use style like this for typedefs

struct Predicate
{
    typedef std::shared_ptr<Predicate>            Ptr;
    typedef std::map<std::string, std::string>    Params;
};

So as you can see the type names are aligned, and sometimes there is larger
space between name and type.
I guess this can be solved using using like this:
struct Predicate
{
    using Ptr         = std::shared_ptr<Predicate>;
    using Params = std::map<std::string, std::string>;
};

because of the = align, but sometimes you can't use c++11 etc so it's not
the answer to every case.

2. The second thing is about macros and the operator ## - on default it is
glued

#define CREATE_EVENT_ACCESSORS(Field, Type)
                                           \
    struct Field##Accessors
                                           \
    {
                                           \
        template <class E>
                                            \
        const Type &get(const E &e) const
                                           \
        {
                                           \
            return e.ref##Field();
                                            \
        }
                                           \
        template <class E>
                                            \
        void set(E &e, const Type &value)
                                           \
        {
                                           \
            e.set##Field(value);
                                            \
        }
                                           \
    };

and there is no way to configure it as normal operator (with spaces
arround).
My question is: would it be simple to add this options? If it woudn't
require too much effort I would like to add this features.

Piotr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20151113/09c635ef/attachment.html>


More information about the cfe-dev mailing list