C++ compiler version

What Version of C++ is supported when I want to be able to have a fully cross compilable game working on PC,Mac,Android and iOS ? What is the least common denominator, what compiler version are used for this ?

We use the following C++11 features in UE4:

  • nullptr
  • auto
  • Range-based-for
  • Lambdas (although stateful lambdas can’t be used with our delegates… yet)
  • override/final

I think you could also use variadic templates if you don’t care about VS2012 support.

VS2012 is the compiler with the most incomplete C++11 implementation that UE4 supports.

All of our non-Microsoft platforms use Clang, so Android would be using Clang.

I mentioned VS2012 because we still support it for Microsoft platforms, and it is the worst compiler in terms of C++11 feature support. If you have VS2013 available then we definitely recommend using that as it has much better C++11 feature support (like variadic templates, which should also work on Clang).

Below is the result of “clang --version”. I’m not sure if we bundle these with UE4, but I imagine they come from the Android SDK and Xcode.

Android: “clang version 3.4”

OS X/iOS: “LLVM version 5.1 (clang 503.0.40)” (Apparently this is actually based on LLVM 3.4svn).

Not quiet sure what to think now. if i am building an android build using UE4 what compiler version is used then? Why would I use VS2012 ? Is VS2013 not supported ?

We are getting there, so what clang version is it and is it bundled in the UE4 toolchain and is it the same clang version for android/ios ?