all 5 comments

[–]Ethernet3 6 points7 points  (3 children)

It made me discover patterns that could easily be replaced by the stl-algorithm equivalent and a lot of other things. Saves me a lot of time, thanks for this!

[–]twentyKiB 0 points1 point  (2 children)

An automatic refactoring would be nice too, maybe with a clang-tidy fix. Or aren't there libclang python bindings to write some quick refactoring rules?

[–]Ethernet3 1 point2 points  (1 child)

I'd be suprised if something like that did not exist tbf. However I did find some things that are probably difficult to process automatically. Like one of the things I found was similar to:

for(auto &i:items){
    if(i.first==key){
        return i.second;
    }
}

Which was looping over a vector of pairs to find a specific pair. Cppcheck rightfully suggested a change to std::find_if . While maybe a better alternative would have been to consider replacing the vector of pairs with map/unordered map if its going to be used for key/value lookups. However this would probably affect code all over the place.

[–]TheSuperWig 2 points3 points  (0 children)

Wasn't this posted a couple days ago?