[Bf-committers] Towards C++11

Lukas Tönne lukas.toenne at gmail.com
Sun Jun 8 13:06:48 CEST 2014


Have been doing an initial test (arch linux 64bit, GCC 4.9), and looks like
it's working alright with just a few minor tweaks needed.

This commit enables C++11 in the depsgraph_refactor branch and could be
ported cleanly to master:
https://developer.blender.org/rB93e4e1ce3434ea680c6ac69fab68303d09d0d11b

Note: some static type tests in BLI_utildefines have been disabled for C++
here, lengthy explanation in the commit comments.

Other compilers (clang, xcode, msvc) will need to be tested of course, and
some external libs need to be verified for compatibility, but generally it
looks quite promising.


On Sat, Jun 7, 2014 at 2:16 PM, Jens Verwiebe <info at jensverwiebe.de> wrote:

> Regarding OSX, it should plain work.
>
> I use c++11 based projects since a while without any issues recognized.
> Anyway apple clang is based on common clang svn, just with some specials
> addedas
> for example xcode integration etc. ..
>
> Jens
>
>
>
>
> Am 07.06.2014 um 12:04 schrieb Lukas Tönne <lukas.toenne at gmail.com>:
>
> > It's great to see that C++11 has general support. It would be really
> > helpful in the depsgraph to deal with closures, among other places.
> Without
> > this we'd have to either tediously backport boost implementation (but why
> > reinvent the wheel?), or use lots of bloated cumbersome type definitions
> > and C style void* casting (error prone, hides logic). So i'm really happy
> > that there are no big showstoppers so far.
> >
> >
> > On Sat, Jun 7, 2014 at 11:38 AM, Martijn Berger <
> martijn.berger at gmail.com>
> > wrote:
> >
> >> @Campbell I am pretty sure give how hard Apple is pushing out new
> releases
> >> and given how many people upgrade that we can just assume an llvm/clang
> >> 3.0+  feature set for c++11.
> >>
> >> I think we should also do this analysis for C99 support and C11 support.
> >> There are some other projects out there that use C++11 features (clang
> is
> >> one) and they have made comprehensive analysis of what features they can
> >> and do use.
> >>
> >> There are some things we can use anyway like noexcept provided we use it
> >> like the QT people use it so the code does not require a c++11 compiler
> but
> >> you do get some benefit from compiling with one (
> >> http://qt-project.org/doc/qt-5/qtglobal.html#Q_DECL_NOEXCEPT)
> >>
> >> I think getting a sort of caniuse.com  for c/c++ language features on
> the
> >> wiki would be good way forward.
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Sat, Jun 7, 2014 at 11:11 AM, Campbell Barton <ideasman42 at gmail.com>
> >> wrote:
> >>
> >>> General +1 to take advantage of C++11 where appropriate,
> >>> AFAICS OSX needs some investigation?, otherwise we're close to being
> >>> able to support it.
> >>>
> >>>
> >>> @Tom M: I'm not concerned with static checking tools, mainly because
> >>> using C++11 in a few places won't suddenly make static checkers fail
> >>> on the rest of our code, eventually they will get updated too.
> >>>
> >>> Coverity has support:
> >>> https://communities.coverity.com/docs/DOC-1571
> >>> clang-static-analyser didn't work well for me last I checked with C++,
> >>> but it might have improved in last year or so.
> >>>
> >>>
> >>> @Ichthyo: Not being able to build Blender on older Linux isnt such a
> >>> big deal since Blender can still run on them, if its important they
> >>> can get a new compiler (I did this on a CentOS server, compiling a
> >>> newer GCC/Clang isnt that big of a deal).
> >>>
> >>>
> >>> @Jeffrey H: C++11 doesn't raise hardware requirements.
> >>>
> >>> On Sat, Jun 7, 2014 at 3:18 PM, Jeffrey H <italic.rendezvous at gmail.com
> >
> >>> wrote:
> >>>> What about older hardware? I don't know much about C++11, but I would
> >>>> imagine it takes advantage of newer processor instruction sets and I
> >> know
> >>>> new compilers do the same. Would Blender still run on, say, an old
> >>> Pentium
> >>>> 4? The reason I ask is simply because a large number of users use
> >> Blender
> >>>> because it's able to run on the proverbial toaster, where Maya and
> >> other
> >>>> programs cannot. Is this actually an issue or am I just making stuff
> >> up?
> >>>>
> >>>>
> >>>> On Fri, Jun 6, 2014 at 11:39 AM, Ichthyostega <prg at ichthyostega.de>
> >>> wrote:
> >>>>
> >>>>> Am 06.06.2014 17:54, schrieb Sergey Sharybin:
> >>>>>> Why it might be useful?
> >>>>>
> >>>>>> C++11 brings some neat syntax and STD library extensions.
> >>>>>
> >>>>> ..plus the benefit you can get from using functors / closures wisely.
> >>>>>
> >>>>>
> >>>>>
> >>>>> Downside is that we have to cut off some platforms / compilers.
> >>>>>
> >>>>> Basically we need GCC >= 4.7 and Clang >= 3.0
> >>>>>
> >>>>> And anything below that will not be supported anymore.
> >>>>> Like RedHat Enterprise Linux. :-P
> >>>>>
> >>>>>
> >>>>> Sounds like something for Blender 2.8.x
> >>>>>
> >>>>>        --Ichthyo
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> Bf-committers mailing list
> >>>>> Bf-committers at blender.org
> >>>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Jeffrey "Italic_" Hoover
> >>>> _______________________________________________
> >>>> Bf-committers mailing list
> >>>> Bf-committers at blender.org
> >>>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>>
> >>>
> >>>
> >>> --
> >>> - Campbell
> >>> _______________________________________________
> >>> Bf-committers mailing list
> >>> Bf-committers at blender.org
> >>> http://lists.blender.org/mailman/listinfo/bf-committers
> >>>
> >> _______________________________________________
> >> Bf-committers mailing list
> >> Bf-committers at blender.org
> >> http://lists.blender.org/mailman/listinfo/bf-committers
> >>
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
>
> _____________________________________
>
> Jens Verwiebe
> Allerskehre 44  -  22309 Hamburg
>
> Tel.: +49 40 68 78 50
> mobil: +49 172 400 49 07
> mailto: info at jensverwiebe.de
> web:  http://www.jensverwiebe.de
> _____________________________________
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list