arhoads opened a new issue, #311:
URL: https://github.com/apache/pulsar-client-cpp/issues/311

   ### Search before asking
   
   - [X] I searched in the 
[issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing 
similar.
   
   
   ### Version
   
   CentOS 7 at commit afb2fcb.
   
   ### Minimal reproduce step
   
   Compile with devtoolset-7 (gcc 7.3.1)
   
   ### What did you expect to see?
   
   No warnings
   
   ### What did you see instead?
   
   ```In file included from 
pulsar-client-cpp/lib/RetryableOperationCache.h:25:0,
                    from pulsar-client-cpp/lib/RetryableLookupService.h:24,
                    from pulsar-client-cpp/lib/ClientImpl.cc:41:
   pulsar-client-cpp/lib/RetryableOperation.h: In instantiation of ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]::<lambda(const class 
boost::system::error_code&)>’:
   pulsar-client-cpp/lib/RetryableOperation.h:109:13:   required from 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]’
   pulsar-client-cpp/lib/RetryableOperation.h:84:46:   required from ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
pulsar::LookupService::LookupResult; pulsar::TimeDuration = 
boost::posix_time::time_duration]::<lambda(enum pulsar::Result, const struct 
pulsar::LookupService::LookupResult&)>’
   pulsar-client-cpp/lib/RetryableOperation.h:84:9:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
pulsar::LookupService::LookupResult; pulsar::TimeDuration = 
boost::posix_time::time_duration]’
   pulsar-client-cpp/lib/RetryableOperation.h:64:23:   required from 
‘pulsar::Future<pulsar::Result, T> pulsar::RetryableOperation<T>::run() [with T 
= pulsar::LookupService::LookupResult]’
   pulsar-client-cpp/lib/RetryableOperationCache.h:73:18:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperationCache<T>::run(const string&, 
std::function<pulsar::Future<pulsar::Result, T>()>&&) [with T = 
pulsar::LookupService::LookupResult; std::string = std::basic_string<char>]’
   pulsar-client-cpp/lib/RetryableLookupService.h:55:100:   required from here
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field
   
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]::<lambda(const 
boost::system::error_code&)>::<this capture>’ [-Werror=attributes]
                timer_->async_wait([this, weakSelf, nextRemainingTime](const 
boost::system::error_code& ec) {
                                                                     ^
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field
   
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::LookupService::LookupResult]::<lambda(const 
boost::system::error_code&)>::<weakSelf capture>’ [-Werror=attributes]
   pulsar-client-cpp/lib/RetryableOperation.h: In instantiation of ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]::<lambda(const 
class boost::system::error_code&)>’:
   pulsar-client-cpp/lib/RetryableOperation.h:109:13:   required from 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]’
   pulsar-client-cpp/lib/RetryableOperation.h:84:46:   required from ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
std::shared_ptr<pulsar::LookupDataResult>; pulsar::TimeDuration = 
boost::posix_time::time_duration]::<lambda(enum pulsar::Result, const class 
std::shared_ptr<pulsar::LookupDataResult>&)>’
   pulsar-client-cpp/lib/RetryableOperation.h:84:9:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
std::shared_ptr<pulsar::LookupDataResult>; pulsar::TimeDuration = 
boost::posix_time::time_duration]’
   pulsar-client-cpp/lib/RetryableOperation.h:64:23:   required from 
‘pulsar::Future<pulsar::Result, T> pulsar::RetryableOperation<T>::run() [with T 
= std::shared_ptr<pulsar::LookupDataResult>]’
   pulsar-client-cpp/lib/RetryableOperationCache.h:73:18:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperationCache<T>::run(const string&, 
std::function<pulsar::Future<pulsar::Result, T>()>&&) [with T = 
std::shared_ptr<pulsar::LookupDataResult>; std::string = 
std::basic_string<char>]’
   pulsar-client-cpp/lib/RetryableLookupService.h:61:95:   required from here
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]::<lambda(const 
boost::system::error_code&)>::<this capture>’ [-Werror=attributes]
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<pulsar::LookupDataResult>]::<lambda(const 
boost::system::error_code&)>::<weakSelf capture>’ [-Werror=attribute
   ]
   pulsar-client-cpp/lib/RetryableOperation.h: In instantiation of ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > 
>]::<lambda(const class boost::system::error_code&)>’:
   pulsar-client-cpp/lib/RetryableOperation.h:109:13:   required from 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > >]’
   pulsar-client-cpp/lib/RetryableOperation.h:84:46:   required from ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
std::shared_ptr<std::vector<std::basic_string<char> > >; pulsar::TimeDuration = 
boost::posix_time::time_duration]::<lambda(enum pulsar::Result, const class 
std::shared_ptr<std::vector<std::basic_string<char> > >&)>’
   pulsar-client-cpp/lib/RetryableOperation.h:84:9:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
std::shared_ptr<std::vector<std::basic_string<char> > >; pulsar::TimeDuration = 
boost::posix_time::time_duration]’
   pulsar-client-cpp/lib/RetryableOperation.h:64:23:   required from 
‘pulsar::Future<pulsar::Result, T> pulsar::RetryableOperation<T>::run() [with T 
= std::shared_ptr<std::vector<std::basic_string<char> > >]’
   pulsar-client-cpp/lib/RetryableOperationCache.h:73:18:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperationCache<T>::run(const string&, 
std::function<pulsar::Future<pulsar::Result, T>()>&&) [with T = 
std::shared_ptr<std::vector<std::basic_string<char> > >; std::string = 
std::basic_string<char>]’
   pulsar-client-cpp/lib/RetryableLookupService.h:68:101:   required from here
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > 
>]::<lambda(const boost::system::error_code&)>’ declared with greater 
visibility than the type of its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > 
>]::<lambda(const boost::system::error_code&)>::<this capture>’ 
[-Werror=attributes]
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > 
>]::<lambda(const boost::system::error_code&)>’ declared with greater 
visibility than the type of its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = std::shared_ptr<std::vector<std::basic_string<char> > 
>]::<lambda(const boost::system::error_code&)>::<weakSelf capture>’ 
[-Werror=attributes]
   pulsar-client-cpp/lib/RetryableOperation.h: In instantiation of ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]::<lambda(const class 
boost::system::error_code&)>’:
   pulsar-client-cpp/lib/RetryableOperation.h:109:13:   required from 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]’
   pulsar-client-cpp/lib/RetryableOperation.h:84:46:   required from ‘struct 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
pulsar::SchemaInfo; pulsar::TimeDuration = 
boost::posix_time::time_duration]::<lambda(enum pulsar::Result, const class 
pulsar::SchemaInfo&)>’
   pulsar-client-cpp/lib/RetryableOperation.h:84:9:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration) [with T = 
pulsar::SchemaInfo; pulsar::TimeDuration = boost::posix_time::time_duration]’
   pulsar-client-cpp/lib/RetryableOperation.h:64:23:   required from 
‘pulsar::Future<pulsar::Result, T> pulsar::RetryableOperation<T>::run() [with T 
= pulsar::SchemaInfo]’
   pulsar-client-cpp/lib/RetryableOperationCache.h:73:18:   required from 
‘pulsar::Future<pulsar::Result, T> 
pulsar::RetryableOperationCache<T>::run(const string&, 
std::function<pulsar::Future<pulsar::Result, T>()>&&) [with T = 
pulsar::SchemaInfo; std::string = std::basic_string<char>]’
   pulsar-client-cpp/lib/RetryableLookupService.h:74:10:   required from here
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]::<lambda(const 
boost::system::error_code&)>::<this capture>’ [-Werror=attributes]
   pulsar-client-cpp/lib/RetryableOperation.h:109:66: error: 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]::<lambda(const 
boost::system::error_code&)>’ declared with greater visibility than the type of 
its field 
‘pulsar::RetryableOperation<T>::runImpl(pulsar::TimeDuration)::<lambda(pulsar::Result,
 const T&)> [with T = pulsar::SchemaInfo]::<lambda(const 
boost::system::error_code&)>::<weakSelf capture>’ [-Werror=attributes]```
   
   ### Anything else?
   
   This seems to be a bug that is fixed in GCC 8. To work around it I can wrap 
the RetryableOperation class in `#pragma GCC visibility push(default)` and 
`#pragma GCC visibility pop`, but I am unsure on the correct way to fix the 
warning. 
   
   ### Are you willing to submit a PR?
   
   - [X] I'm willing to submit a PR!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to