From Jonathan.Haws at sdl.usu.edu Thu Oct 29 13:38:25 2020 From: Jonathan.Haws at sdl.usu.edu (Jonathan Haws) Date: Thu Oct 29 13:58:41 2020 Subject: [xsde-users] xsd/e: Compiler warnings from copy ctor of var_const_iterator (sequence.hxx:428) Message-ID: <290be19ac76b6f3875eb0048ede29cc6bdb31565.camel@sdl.usu.edu> I'm running xsd/e version 3.2.0 (the latest from what I can tell) with newer GCC compilers (7.5, 9,2, 9.3). I'm finding that some versions (9 and above) will give me a warning about a deprecated copy when using the following construct (GCC 7 does not give a warning): for (auto &c : xml.choice()) { } I've tracked this down to the copy constructor in sequence.hxx at line 428. Because this copy constructor exists, the compiler will issue a warning as follows: warning: implicitly-declared ?constexpr xsde::cxx::hybrid::var_const_iterator::var_const_i terator(const xsde::cxx::hybrid::var_const_iterator&)? is deprecated [-Wdeprecated-copy] 283 | for (auto &choice : sensor.choice()) | ^ In file included from /opt/git/sigma/modules/libxsde/xsde/../xsde/cxx/hybrid/any-type.hxx:14, from /opt/git/sigma/_intelbld/xmlLIB/XML/sigma- pskel.hxx:16, from /opt/git/sigma/_intelbld/xmlLIB/XML/sigma- pimpl.hxx:25, from /opt/git/sigma/xmlLIB/XML/XmlConfig.hpp:28, ... /opt/git/sigma/modules/libxsde/xsde/../xsde/cxx/hybrid/sequence.hxx:429 :9: note: because ?xsde::cxx::hybrid::var_const_iterator? has user- provided ?xsde::cxx::hybrid::var_const_iterator& xsde::cxx::hybrid::var_const_iterator::operator=(xsde::cxx::hybrid:: var_const_iterator) [with T = sensor::choice_type]? 429 | operator= (var_const_iterator j) | ^~~~~~~~ /opt/git/sigma/modules/libxsde/xsde/../xsde/cxx/hybrid/sequence.hxx:569 :66: note: initializing argument 2 of ?bool xsde::cxx::hybrid::operator!=(xsde::cxx::hybrid::var_const_iterator, xsde::cxx::hybrid::var_const_iterator) [with T = sensor::choice_type]? 569 | operator!= (var_const_iterator i, var_const_iterator j) The code seems to behave the same at runtime when I remove that copy constructor and just use the compiler default (which from what I can tell should produce nearly identical code). All versions of GCC that I have tried build properly and no issues at runtime. Can you help me understand what is going on? Is there a newer version of xsd/e that I can use? If so, where do I find that because the download page only has version 3.2.0 listed? Is there a better way to fix these warnings other than removing that ctor? Thanks! Jon -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 5562 bytes Desc: not available Url : https://codesynthesis.com/pipermail/xsde-users/attachments/20201029/b1ae11d4/smime.bin