/usr/include/dune/grid/yaspgrid/yaspgridentitypointer.hh is in libdune-grid-dev 2.4.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifndef DUNE_GRID_YASPGRIDENTITYPOINTER_HH
#define DUNE_GRID_YASPGRIDENTITYPOINTER_HH
/** \file
* \brief The YaspEntityPointer class
*/
namespace Dune {
/** \brief A pointer to a YaspGrid::Entity
*/
template<int codim, class GridImp>
class YaspEntityPointer
{
//! know your own dimension
enum { dim=GridImp::dimension };
//! know your own dimension of world
typedef typename GridImp::ctype ctype;
public:
typedef typename GridImp::template Codim<codim>::Entity Entity;
typedef typename GridImp::YGridLevelIterator YGLI;
typedef typename GridImp::YGrid::Iterator I;
typedef YaspEntityPointer<codim,GridImp> EntityPointerImp;
protected:
typedef YaspEntity<codim, dim, GridImp> YaspEntityImp;
public:
//! codimension of entity pointer
enum { codimension = codim };
//! default constructor
YaspEntityPointer () :
_entity(YaspEntityImp())
{}
//! constructor
YaspEntityPointer (const YGLI & g, const I& it)
: _entity(YaspEntityImp(g,it))
{}
// skip this constructor for GCC 4.4, which has a number of nasty bugs in its rvalue reference support
// As this behavior is hard to trigger in small configuration tests and because we'll probably drop GCC 4.4
// after the next release anyway, I hacked in this hardcoded check for the compiler version
#if not (defined(__GNUC__) && (__GNUC__ < 5) && (__GNUC_MINOR__ < 5))
YaspEntityPointer (YGLI&& g, I&& it)
: _entity(YaspEntityImp(std::move(g),std::move(it)))
{}
#endif
//! copying and moving
YaspEntityPointer (const YaspEntityImp& entity)
: _entity(entity)
{}
YaspEntityPointer (YaspEntityImp&& entity)
: _entity(std::move(entity))
{}
//! copying and moving -- use default implementations
//! equality
bool equals (const YaspEntityPointer& rhs) const
{
return (_entity == rhs._entity);
}
//! dereferencing
const Entity& dereference() const
{
return _entity;
}
//! ask for level of entity
int level () const {return _entity.level();}
//! use default assignment operator
protected:
Entity _entity; //!< entity
};
} // namespace Dune
#endif // DUNE_GRID_YASPGRIDENTITYPOINTER_HH
|