Hi Max, Thank you for the nice blog.
I did not know all these reason pro "auto". I am currently working in a huge c# project, which uses a Mixed style "var" / explicit types. Since It is not all my code, It is sometimes a pain to understand the code with all the vars and the mixed style: QList<QString> list = getList(); is much easier to understand than auto list = getList(); It might help if we have auto list = getListOfQString(); or something. If you start a project from the scratch, It seams there are much more reasons for using auto. But in a big existing project, we have to consider careful if enough pro arguments exists. And If, how we will manage a transition to a desired AAA Style. It will be finally OK for me if we decide to replace all local declarations with auto. What will be a good strategy, that does not and up only in reducing readability? Can we set up some more rules? Kind regards, Daniel 2015-06-05 10:38 GMT+02:00 Max Linke <max_li...@gmx.de>: > > > On 06/05/2015 09:55 AM, Daniel Schürmann wrote: > > Hi all. > > > > Good news! Thank you RJ. > > > > I just one objection to the C++11 white list. > > > > The new keyword "auto". > > > No auto is awesome. I've started a new simulation Montecarlo simulation > program for my PhD and use exclusively auto to declare my variables. So > far I was never surprised by type and I get the benefit that I force the > compiler to check that each of my variables is initialized, incredibly > useful! > > At first it seems a bit odd but once you are used to only using auto it > gets convenient with no noticeable downside. > > A good post on that topic is. > > > http://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/ > > I can also recommend the chapter about 'auto' in Effective Modern C++ > > > > 2015-06-05 6:43 GMT+02:00 RJ Ryan <rr...@mixxx.org>: > > > >> Mixxx is switching to C++11! The master branch now has -std=c++11 turned > >> on. 1.12 will be the last release without C++11 support. > >> > >> This means we have new minimum requirements for compilers: > >> * Visual Studio 2013 (12.0) > >> * GCC 4.8 (supported on Ubuntu 14.04 and up) > >> * Clang 3.3 (supported on Ubuntu 14.04 and up. Supported on XCode 4.4 > and > >> higher) > > Nice > > ** Backport some C++14 stuff ** > > We should introduce a compat header to backport some useful C++14 stuff. > This can be done rather easily because it is just a minor addition to > C++11. A obvious one is the make_unique and make_shared template. > > namespace std { > > // we use C++11 as a minimum requirment. make_unique was added in C++14 > to the > // standard. So always use this. > template <typename T, typename... Ts> > std::unique_ptr<T> make_unique(Ts&&... params) { > return std::unique_ptr<T>(new T(std::forward<Ts>(params)...)); > } > > template <typename T, typename... Ts> > std::shared_ptr<T> make_shared(Ts&&... params) { > return std::shared_ptr<T>(new T(std::forward<Ts>(params)...)); > } > > } // namespace std > > > This sure that we allocate the smartpointer and real pointer adjacent to > each other in ram, It can be later used like > > auto tmp = make_unique<QWidget>(var1, var2, var3); > > > ------------------------------------------------------------------------------ > _______________________________________________ > Get Mixxx, the #1 Free MP3 DJ Mixing software Today > http://mixxx.org > > > Mixxx-devel mailing list > Mixxx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mixxx-devel >
------------------------------------------------------------------------------
_______________________________________________ Get Mixxx, the #1 Free MP3 DJ Mixing software Today http://mixxx.org Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel