mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
declaration fix
This commit is contained in:
parent
bb6ed44339
commit
2f849ee252
@ -35,54 +35,6 @@ Author: Guido Cossu <guido.cossu@ed.ac.uk>
|
|||||||
#include <Grid/serialisation/VectorUtils.h>
|
#include <Grid/serialisation/VectorUtils.h>
|
||||||
|
|
||||||
namespace Grid {
|
namespace Grid {
|
||||||
// Pair IO utilities /////////////////////////////////////////////////////////
|
|
||||||
// helper function to parse input in the format "<obj1 obj2>"
|
|
||||||
template <typename T1, typename T2>
|
|
||||||
inline std::istream & operator>>(std::istream &is, std::pair<T1, T2> &buf)
|
|
||||||
{
|
|
||||||
T1 buf1;
|
|
||||||
T2 buf2;
|
|
||||||
char c;
|
|
||||||
|
|
||||||
// Search for "pair" delimiters.
|
|
||||||
do
|
|
||||||
{
|
|
||||||
is.get(c);
|
|
||||||
} while (c != '(' && !is.eof());
|
|
||||||
if (c == '(')
|
|
||||||
{
|
|
||||||
int start = is.tellg();
|
|
||||||
do
|
|
||||||
{
|
|
||||||
is.get(c);
|
|
||||||
} while (c != ')' && !is.eof());
|
|
||||||
if (c == ')')
|
|
||||||
{
|
|
||||||
int end = is.tellg();
|
|
||||||
int psize = end - start - 1;
|
|
||||||
|
|
||||||
// Only read data between pair limiters.
|
|
||||||
is.seekg(start);
|
|
||||||
std::string tmpstr(psize, ' ');
|
|
||||||
is.read(&tmpstr[0], psize);
|
|
||||||
std::istringstream temp(tmpstr);
|
|
||||||
temp >> buf1 >> buf2;
|
|
||||||
buf = std::make_pair(buf1, buf2);
|
|
||||||
is.seekg(end);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
is.peek();
|
|
||||||
return is;
|
|
||||||
}
|
|
||||||
|
|
||||||
// output to streams for pairs
|
|
||||||
template <class T1, class T2>
|
|
||||||
inline std::ostream & operator<<(std::ostream &os, const std::pair<T1, T2> &p)
|
|
||||||
{
|
|
||||||
os << "(" << p.first << " " << p.second << ")";
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Abstract writer/reader classes ////////////////////////////////////////////
|
// Abstract writer/reader classes ////////////////////////////////////////////
|
||||||
// static polymorphism implemented using CRTP idiom
|
// static polymorphism implemented using CRTP idiom
|
||||||
class Serializable;
|
class Serializable;
|
||||||
|
@ -5,6 +5,54 @@
|
|||||||
#include <Grid/tensors/Tensors.h>
|
#include <Grid/tensors/Tensors.h>
|
||||||
|
|
||||||
namespace Grid {
|
namespace Grid {
|
||||||
|
// Pair IO utilities /////////////////////////////////////////////////////////
|
||||||
|
// helper function to parse input in the format "<obj1 obj2>"
|
||||||
|
template <typename T1, typename T2>
|
||||||
|
inline std::istream & operator>>(std::istream &is, std::pair<T1, T2> &buf)
|
||||||
|
{
|
||||||
|
T1 buf1;
|
||||||
|
T2 buf2;
|
||||||
|
char c;
|
||||||
|
|
||||||
|
// Search for "pair" delimiters.
|
||||||
|
do
|
||||||
|
{
|
||||||
|
is.get(c);
|
||||||
|
} while (c != '(' && !is.eof());
|
||||||
|
if (c == '(')
|
||||||
|
{
|
||||||
|
int start = is.tellg();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
is.get(c);
|
||||||
|
} while (c != ')' && !is.eof());
|
||||||
|
if (c == ')')
|
||||||
|
{
|
||||||
|
int end = is.tellg();
|
||||||
|
int psize = end - start - 1;
|
||||||
|
|
||||||
|
// Only read data between pair limiters.
|
||||||
|
is.seekg(start);
|
||||||
|
std::string tmpstr(psize, ' ');
|
||||||
|
is.read(&tmpstr[0], psize);
|
||||||
|
std::istringstream temp(tmpstr);
|
||||||
|
temp >> buf1 >> buf2;
|
||||||
|
buf = std::make_pair(buf1, buf2);
|
||||||
|
is.seekg(end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
is.peek();
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
|
// output to streams for pairs
|
||||||
|
template <class T1, class T2>
|
||||||
|
inline std::ostream & operator<<(std::ostream &os, const std::pair<T1, T2> &p)
|
||||||
|
{
|
||||||
|
os << "(" << p.first << " " << p.second << ")";
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
// Grid scalar tensors to nested std::vectors //////////////////////////////////
|
// Grid scalar tensors to nested std::vectors //////////////////////////////////
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct TensorToVec
|
struct TensorToVec
|
||||||
|
Loading…
x
Reference in New Issue
Block a user