Using some of Boost on i5/OS but still problems

I was able to use Boost FOREACH in my tests, now I'm trying to use Boost optionals in a C++ ILE module. The compiler is yelling at me, though: "/home/jbrisbin/include/boost/optional/optional.hpp", line 434.66: CZP0210(30) "T" is not a base class of "basic_string<char,std::char_traits<char>,std::allocator<char> >". "/home/jbrisbin/include/boost/optional/optional.hpp", line 434.10: CZP0700(0) The previous message was produced while processing "boost::optional_detail::optional_base<std::basic_string<char,std::char_ traits<char>,std::allocator<char> >
::destroy_impl(is_not_reference_tag)". "/home/jbrisbin/include/boost/optional/optional.hpp", line 408.9: CZP0700(0) The previous message was produced while processing
"boost::optional_detail::optional_base<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > >::destroy()". "/home/jbrisbin/include/boost/optional/optional.hpp", line 237.24: CZP0700(0) The previous message was produced while processing "boost::optional_detail::optional_base<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > >::~optional_base()". "/home/jbrisbin/include/boost/optional/optional.hpp", line 145.7: CZP0700(0) The previous message was produced while processing "boost::optional_detail::optional_base<std::basic_string<char,std::char_ traits<char>,std::allocator<char> > >::__dftbdt()". "/home/jbrisbin/include/boost/optional/optional.hpp", line 522.5: CZP0700(0) The previous message was produced while processing "boost::optional<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > >::~optional()". "/home/jbrisbin/include/boost/optional/optional.hpp", line 454.7: CZP0700(0) The previous message was produced while processing "boost::optional<std::basic_string<char,std::char_traits<char>,std::allo cator<char> > >::__dftdt()". "/home/jbrisbin/src/boosttest.cpp", line 6.5: CZP0700(0) The previous message was produced while processing "main(int, char **)". Any hints on what I need to hack here? This seems to be a problem with: void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T () ; m_initialized = false ; } I understand what's happening, I'm just not sure how to make the i5/OS compiler happy with this. I keep running into little quirks like this where the AS400 needs a little different treatment. IBM says Boost won't work on the AS400, which I'm finding to be inaccurate at best. It DOES work, just not everything straight out of the box. Lots of things work fine, but some need a little bit of tweaking. What else can I try to get the destructor called? Jon Brisbin Portal Webmaster NPC International, Inc.

Jon Brisbin wrote:
Any hints on what I need to hack here? This seems to be a problem with:
void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
What else can I try to get the destructor called?
Just a guess, does "get_ptr_impl()->~T()" work?

Sweet! That did it... On to the next thing. :) Jon Brisbin Portal Webmaster NPC International, Inc. On Sep 28, 2009, at 10:03 PM, Andrey Semashev wrote:
Jon Brisbin wrote:
Any hints on what I need to hack here? This seems to be a problem with: void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()-
T::~T() ; m_initialized = false ; } What else can I try to get the destructor called?
Just a guess, does "get_ptr_impl()->~T()" work?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (2)
-
Andrey Semashev
-
Jon Brisbin