/usr/include/XdmfSharedPtr.hpp is in libxdmf-dev 3.0+git20160803-4.
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 | /*****************************************************************************/
/* XDMF */
/* eXtensible Data Model and Format */
/* */
/* Id : XdmfSharedPtr.hpp */
/* */
/* Author: */
/* Kenneth Leiter */
/* kenneth.leiter@arl.army.mil */
/* US Army Research Laboratory */
/* Aberdeen Proving Ground, MD */
/* */
/* Copyright @ 2011 US Army Research Laboratory */
/* All Rights Reserved */
/* See Copyright.txt for details */
/* */
/* This software is distributed WITHOUT ANY WARRANTY; without */
/* even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the above copyright notice */
/* for more information. */
/* */
/*****************************************************************************/
#ifndef XDMFSHAREDPTR_HPP_
#define XDMFSHAREDPTR_HPP_
#ifdef __cplusplus
#include "XdmfCoreConfig.hpp"
#include <boost/shared_ptr.hpp>
using boost::shared_ptr;
#ifdef HAVE_BOOST_SHARED_DYNAMIC_CAST
using boost::shared_dynamic_cast;
#else
template <typename T, typename U>
shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
{
typedef typename shared_ptr<T>::element_type E;
E * p = dynamic_cast< E* >( r.get() );
return p? shared_ptr<T>( r, p ): shared_ptr<T>();
}
#endif /* HAVE_BOOST_SHARED_DYNAMIC_CAST */
// Used by C wrappers to prevent shared pointers from prematurely deleting objects
// Normally this would be completely against the point of shared pointers,
// but the C wrapping requires that objects be seperated from the shared pointers.
struct XdmfNullDeleter
{
template<typename T>
void operator()(T*) {}
};
#endif
#endif /* XDMFSHAREDPTR_HPP_ */
|