Boost logo

Boost Users :

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://lists.boost.org/mailman/listinfo.cgi/boost-users



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net