[ 
https://issues.apache.org/jira/browse/THRIFT-3043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14363048#comment-14363048
 ] 

Roger Meier commented on THRIFT-3043:
-------------------------------------

I had to add the following definition to compiler/cpp/CMakeLists.txt to get it 
working:
{noformat}
list(APPEND CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}")
{noformat}

The standard CMake way only supports 98, 11 and 14, see here 
http://www.cmake.org/cmake/help/v3.1/prop_tgt/CXX_STANDARD.html?highlight=cxx_standard

I guess we should change the default at least to the pseudo standard c++03, 
would this fit for centos? Or can we start to depend on centos 7?

> go compiler generator uses non C++98 code
> -----------------------------------------
>
>                 Key: THRIFT-3043
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3043
>             Project: Thrift
>          Issue Type: Bug
>          Components: Go - Compiler
>    Affects Versions: 0.9.3
>            Reporter: Randy Abernethy
>            Priority: Blocker
>
> go compiler generator uses non C++98 code causing builds to fail in Centos 6 
> and other environments. 
> ==> default: src/generate/t_go_generator.cc:415: error: in C++98 
> ���commonInitialisms��� must be initialized by constructor, not by ���{...}���
> ==> default: src/generate/t_go_generator.cc:415: error: deducing from 
> brace-enclosed initializer list requires #include <initializer_list>
> ==> default: src/generate/t_go_generator.cc:415: error: deducing from 
> brace-enclosed initializer list requires #include <initializer_list>
> ==> default: src/generate/t_go_generator.cc:415: warning: extended 
> initializer lists only available with -std=c++0x or -std=gnu++0x
> ==> default: src/generate/t_go_generator.cc:415: error: no matching function 
> for call to ���std::set<std::basic_string<char, std::char_traits<char>, s
> td::allocator<char> >, std::less<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> std::allocator<std::basic_string<char, std:
> :char_traits<char>, std::allocator<char> > > >::set(<brace-enclosed 
> initializer list>)���
> ==> default: 
> /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_set.h:188:
>  note: candidates are: std::set<_Key, _Compare, _
> Alloc>::set(const std::set<_Key, _Compare, _Alloc>&) [with _Key = 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 
> _Compare = s
> td::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > >, _Alloc = std::allocator<std::basic_string<char, std::char_traits<ch
> ar>, std::allocator<char> > >]
> ==> default: 
> /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_set.h:136:
>  note:                 std::set<_Key, _Compare, _
> Alloc>::set() [with _Key = std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::c
> har_traits<char>, std::allocator<char> > >, _Alloc = 
> std::allocator<std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >]
> ==> default: make[3]: *** [thrift-t_go_generator.o] Error 1
> ==> default: make[3]: Leaving directory `/thrift/compiler/cpp'
> ==> default: make[2]: *** [all] Error 2



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to