News for hackers. Stuff that matters.
Re:Breaking all the Eggs in C++ (2015) by faho on Sunday December 30, 2018 @01:47PM (#18790628)
Python has the additional problem of being highly dynamic, though!

In C++'s case, the transformation tool has much more information, so more things are possible to do.

E.g. let's take the ".erase" case from the article. In python, a method

    def foo(bar):
        bar.remove(baz)
can't simply change "remove" to "erase", because it has no idea what type "bar" has.

A C++ tool sees

    void foo(std::list<sometype>& baz)
and can then safely change "remove" to "erase".
Re:Breaking all the Eggs in C++ (2015) by wbkang on Sunday December 30, 2018 @02:42PM (#18790916)
I think that breaks down as soon as templates are involved, which is very pervasive in C++ codebase.

Given

    template<typename T, typename sometype>
    void foo(T<sometype>& baz)
It's not so straightforward anymore.
Re:Breaking all the Eggs in C++ (2015) by jgtrosh on Sunday December 30, 2018 @04:46PM (#18791531)
It can still apply the operation anytime a specialized object is defined. (This is how templates are compiled, right?)
Re:Breaking all the Eggs in C++ (2015) by int0x80 on Sunday December 30, 2018 @03:23PM (#18791118)
Big problem here is the preprocessor as mentioned in the article.