$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Robert Ramey (ramey_at_[hidden])
Date: 2007-08-07 16:13:48
  "Oliver Kania" <kania.oliver_at_[hidden]> wrote in message news:1262c4ee0708070930u79c86b99v471754c1731d9e9c_at_mail.gmail.com...
  Hello,
  I have the following struct:
  struct CUBE_INFO {
              friend class boost::serialization::access; 
              long cube;
              std::string ncube;
              UINT number_dimensions;
              DIMENSION_LIST dimensions;
              long double number_cells;
              long double number_filled_cells;
              enum STATUS { UNLOADED = 0, LOADED, CHANGED }
              status;
              enum TYPE { NORMAL = 0, SYSTEM, ATTRIBUTE }
              type;
              friend std::istream& operator>>( std::istream& in, CUBE_INFO& cubeInfo ); 
              friend std::ostream& operator<<( std::ostream& out, const CUBE_INFO& cubeInfo );
          private:
              template<class Archive>
              void serialize( Archive &ar, const unsigned int version ) {
                  ar & cube;
                  ar & dimensions;
                  ar & ncube;
                  ar & number_cells; 
                  ar & number_dimensions;
                  ar & number_filled_cells; 
                  ar & status;
                  ar & type;
              }
          };
  here, DIMENSION_LIST is an STL-vector of longs. I am including 
  #include <boost/serialization/vector.hpp>
  #include <boost/serialization/access.hpp> 
  I try to comple the code below (MS VisualStudio 8, boost 1.34)
  #include <fstream> 
  #include <boost/archive/text_oarchive.hpp>
  #include <boost/archive/text_iarchive.hpp> 
  #include <string>
  #include "../Palo/Cache/AbstractCache.h" 
  #include "../Palo/Cache/CubeCache.h"
  #include "../Palo/Cache/CubesCache.h" 
  #include "../Palo/types.h"
  using namespace jedox::palo; 
  int main(int argc, char* argv[])
  { 
      //string filename("SerializeTest");
      CUBE_INFO * const c = new CUBE_INFO();    // add "const" here - see rationale in documentation
      std::ofstream ofs("filename");
      //std::ofstream ofs("filename" );
      // save data to archive
      {
          boost::archive::text_oarchive oa( ofs ); 
          // write class instance to archive
          oa << ( c ); 
          // archive and stream closed when destructors are called
      }
      return 0;
  }
  The resulting error message is:
  >f:\lib\x32\include\boost\archive\detail\oserializer.hpp(567) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>' 
  1>        with
  1>        [
  1>            x=false
  1>        ]
  1>        f:\lib\x32\include\boost\archive\basic_text_oarchive.hpp(78) : see reference to function template instantiation 'void boost::archive::save<Archive,T>(Archive &,T &)' being compiled 
  1>        with
  1>        [
  1>            Archive=boost::archive::text_oarchive,
  1>            T=jedox::palo::CUBE_INFO *
  1>        ]
  regards, Oliver
------------------------------------------------------------------------------
  _______________________________________________
  Boost-users mailing list
  Boost-users_at_[hidden]
  http://listarchives.boost.org/mailman/listinfo.cgi/boost-users