[x265] Dynamic HDR10 routines don't compile in GCC 6.3.0, missing C++11 compatibility
Mario *LigH* Rohkrämer
contact at ligh.de
Thu Apr 20 17:03:33 CEST 2017
Here a longer excerpt of the result of the following call (building the
12-bit depth library for a 32-bit multilib EXE, the first part in my
semi-automatical build script, test version with added dynamicHDR10
support):
cmake -G "MSYS Makefiles" ../../../source -DWINXP_SUPPORT=ON
-DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF
-DENABLE_ASSEMBLY=OFF -DHIGH_BIT_DEPTH=ON -DMAIN12=ON
-DENABLE_DYNAMIC_HDR10=ON
+----
...
[ 54%] Built target common
[ 56%] Building CXX object
dynamicHDR10/CMakeFiles/dynamicHDR10.dir/json11/json11.cpp.obj
In file included from
h:\msys-gcc630\mingw\include\c++\6.3.0\initializer_list:36:0,
from
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:57,
from
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.cpp:22:
h:\msys-gcc630\mingw\include\c++\6.3.0\bits\c++0x_warning.h:32:2: error:
#error This file requires compiler and library support for the ISO C++
2011 standard. This support must be enabled with the -std=c++11 or
-std=gnu++11 compiler options.
#error This file requires compiler and library support \
^~~~~
In file included from
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.cpp:22:0:
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:91:5:
warning: identifier 'noexcept' is a keyword in C++11 [-Wc++11-compat]
Json() noexcept; // NUL
^~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:106:5:
warning: identifier 'decltype' is a keyword in C++11 [-Wc++11-compat]
template <class T, class = decltype(&T::to_json)>
^~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:176:13:
warning: identifier 'nullptr' is a keyword in C++11 [-Wc++11-compat]
return nullptr;
^~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:79:7:
warning: override controls (override/final) only available with -std=c++11
or -std=gnu++11
class Json final{ //final
^~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:91:10:
error: expected ';' at end of member declaration
Json() noexcept; // NUL
^
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:91:12:
error: 'noexcept' does not name a type
Json() noexcept; // NUL
^~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:91:12:
note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:92:24:
error: invalid use of '::'
Json(std::nullptr_t) noexcept; // NUL
^
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:92:24:
error: expected ';' at end of member declaration
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:92:26:
error: 'noexcept' does not name a type
Json(std::nullptr_t) noexcept; // NUL
^~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:92:26:
note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:97:22:
error: expected ',' or '...' before '&&' token
Json(std::string &&value); // STRING
^~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:100:16:
error: expected ',' or '...' before '&&' token
Json(array &&values); // ARRAY
^~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:102:17:
error: expected ',' or '...' before '&&' token
Json(object &&values); // OBJECT
^~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:106:32:
error: expected type-specifier before 'decltype'
template <class T, class = decltype(&T::to_json)>
^~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:106:32:
error: expected '>' before 'decltype'
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:107:21:
error: default template arguments may not be used in function templates
without -std=c++11 or -std=gnu++11
Json(const T & t) : Json(t.to_json()) {}
^
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:110:38:
error: 'enable_if' in namespace 'std' does not name a template type
template <class M, typename std::enable_if<
^~~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:110:47:
error: expected '>' before '<' token
template <class M, typename std::enable_if<
^
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:114:5:
error: 'template<class M, <typeprefixerror><anonymous> >
json11::Json::Json(const M&)' cannot be overloaded
Json(const M & m) : Json(object(m.begin(), m.end())) {}
^~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:107:5:
error: with 'template<class T, class> json11::Json::Json(const T&)'
Json(const T & t) : Json(t.to_json()) {}
^~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:117:38:
error: 'enable_if' in namespace 'std' does not name a template type
template <class V, typename std::enable_if<
^~~~~~~~~
h:/MSYS-GCC630/home/Entwicklung/x265/source/dynamicHDR10/json11/json11.h:117:47:
error: expected '>' before '<' token
template <class V, typename std::enable_if<
^
...
+----
and a few more pages following; eventually the result:
+----
make[2]: ***
[dynamicHDR10/CMakeFiles/dynamicHDR10.dir/json11/json11.cpp.obj] Error 1
make[1]: *** [dynamicHDR10/CMakeFiles/dynamicHDR10.dir/all] Error 2
make: *** [all] Error 2
+----
--
Fun and success!
Mario *LigH* Rohkrämer
mailto:contact at ligh.de
More information about the x265-devel
mailing list