Wireshark-dev: Re: [Wireshark-dev] Using C++ for a test tool linking to wireshark
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 9 Aug 2017 12:21:03 -0700
On Aug 9, 2017, at 12:01 PM, Sultan, Hassan <sultah@xxxxxxxxxx> wrote:

> Awesome :) so no concerns about C++ 11 then ?

There's "concerns about C++" and there's "concerns about C++ 11".

The Wireshark Developer's Guide:

	https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html#ChSetupMSVC

currently *recommends* Microsoft Visual Studio 2013 Community Edition, and notes that we use that version to build the releases, but also mentions VS 2010.  VS 2010 supports some, but not all, features in the C++11 core language specification:

	https://msdn.microsoft.com/en-us/library/hh567368(v=vs.120).aspx

GCC 4.8.1 is claimed to be feature-complete for C++ 11:

	https://gcc.gnu.org/projects/cxx-status.html#cxx11

"Clang 3.3 and later implement all of the ISO C++ 2011 standard.":

	https://clang.llvm.org/cxx_status.html

but "By default, Clang builds C++ code according to the C++98 standard, with many C++11 features accepted as extensions. You can use Clang in C++11 mode with the -std=c++11 option."

I don't know which versions of various vendor compilers for UN*X (Oracle Studio, IBM XLC++ or whatever they call it, HP C++) support what versions of the C++ standard; this page:

	http://en.cppreference.com/w/cpp/compiler_support

"is maintained as best-effort and may lag behind most recent compiler releases" but might be worth checking.

If we were to require C++ 11 support, we might need to change the autoconf script or the CMake files to ensure that we use flags such as -std=C++11 when building C++ code.