mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Changes to remove warnings under icc; disambiguate AVX512 from IMCI correctly
and drop swizzles in AVX512. Don't know why these compiled.
This commit is contained in:
		@@ -10,15 +10,15 @@ public:
 | 
			
		||||
  virtual void push(const std::string &s) = 0;
 | 
			
		||||
  virtual void pop(void) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const std::string &output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,  int16_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s, uint16_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,  int32_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s, uint32_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,  int64_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s, uint64_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,  float      output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s, double      output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s, bool        output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const  int16_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const uint16_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const  int32_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const uint32_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const  int64_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const uint64_t    output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const  float      output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const double      output      ) =0;
 | 
			
		||||
  virtual void write( const std::string& s,const bool        output      ) =0;
 | 
			
		||||
  
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -35,19 +35,19 @@ public:
 | 
			
		||||
      write(s,cstr[c]);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  void write( const std::string& s,  char       output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  char       output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s, T output ){
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s,const T output ){
 | 
			
		||||
    // FIXME --- htons, htonl, htno64 etc..
 | 
			
		||||
    file.write((char *)&output,sizeof(T));
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -120,14 +120,14 @@ THE SOFTWARE.
 | 
			
		||||
  GRID_MACRO_EVAL(GRID_MACRO_MAP(GRID_MACRO_MEMBER,__VA_ARGS__))		\
 | 
			
		||||
  \
 | 
			
		||||
  \
 | 
			
		||||
  template<class Writer> friend void write(Writer &WR,const std::string &s, const cname &obj){ \
 | 
			
		||||
  friend void write(Writer &WR,const std::string &s, const cname &obj){ \
 | 
			
		||||
    push(WR,s);\
 | 
			
		||||
    GRID_MACRO_EVAL(GRID_MACRO_MAP(GRID_MACRO_WRITE_MEMBER,__VA_ARGS__))	\
 | 
			
		||||
    pop(WR);\
 | 
			
		||||
  } \
 | 
			
		||||
  \
 | 
			
		||||
  \
 | 
			
		||||
  template<class Reader> friend void read(Reader &RD,const std::string &s, cname &obj){	\
 | 
			
		||||
  friend void read(Reader &RD,const std::string &s, cname &obj){	\
 | 
			
		||||
    push(RD,s);\
 | 
			
		||||
    GRID_MACRO_EVAL(GRID_MACRO_MAP(GRID_MACRO_READ_MEMBER,__VA_ARGS__))	\
 | 
			
		||||
    pop(RD);\
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@
 | 
			
		||||
 | 
			
		||||
#include <serialisation/MacroMagic.h>
 | 
			
		||||
#include <serialisation/BaseIO.h>
 | 
			
		||||
#include <stdint.h>
 | 
			
		||||
 | 
			
		||||
namespace Grid {
 | 
			
		||||
 | 
			
		||||
@@ -12,17 +13,17 @@ namespace Grid {
 | 
			
		||||
  inline void push(Writer & WR,const char *s)        { WR.push(std::string(s));}
 | 
			
		||||
  inline void pop (Writer & WR)                      { WR.pop();}
 | 
			
		||||
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const char * output      ) { wr.write(s,std::string(output)); };
 | 
			
		||||
  //  inline void write(Writer& wr, const std::string& s,const char * output      ) { wr.write(s,std::string(output)); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const std::string &output) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,  int16_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s, uint16_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,  int32_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s, uint32_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,  int64_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s, uint64_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,  float      output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s, double      output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s, bool        output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const  int16_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const uint16_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const  int32_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const uint32_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const  int64_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const uint64_t    output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const  float      output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const double      output      ) { wr.write(s,output); };
 | 
			
		||||
  inline void write(Writer& wr, const std::string& s,const bool        output      ) { wr.write(s,output); };
 | 
			
		||||
  
 | 
			
		||||
  inline void push(Reader & WR,const std::string &s) { WR.push(s);}
 | 
			
		||||
  inline void push(Reader & WR,const char *s)        { WR.push(std::string(s));}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,19 +43,19 @@ public:
 | 
			
		||||
    indent();
 | 
			
		||||
    file<<output<<std::endl;
 | 
			
		||||
  };
 | 
			
		||||
  void write( const std::string& s,  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s, T output ){
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s,const T output ){
 | 
			
		||||
    indent();
 | 
			
		||||
    file << std::boolalpha << output<<std::endl;
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -49,19 +49,20 @@ public:
 | 
			
		||||
    pugi::xml_node leaf=node.append_child(s.c_str());
 | 
			
		||||
    leaf.append_child(pugi::node_pcdata).set_value(output.c_str());
 | 
			
		||||
  };
 | 
			
		||||
  void write( const std::string& s,  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s, bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
 | 
			
		||||
  void write( const std::string& s,const  int16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint16_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint32_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  int64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const uint64_t    output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const  float      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const double      output      ) { writeInternal(s,output); };
 | 
			
		||||
  void write( const std::string& s,const bool        output      ) { writeInternal(s,output); };
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s, T output ){
 | 
			
		||||
  template<class T> void writeInternal( const std::string& s,const T output ){
 | 
			
		||||
    std::ostringstream os;
 | 
			
		||||
    os << std::boolalpha << output;
 | 
			
		||||
    write(s,os.str());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user