/usr/include/cutl/shared-ptr/base.hxx is in libcutl-dev 1.8.1+ds1-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 91 92 | // file : cutl/shared-ptr/base.hxx
// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
// license : MIT; see accompanying LICENSE file
#ifndef CUTL_SHARED_PTR_BASE_HXX
#define CUTL_SHARED_PTR_BASE_HXX
#include <new>
#include <cstddef> // std::size_t
#include <cutl/exception.hxx>
#include <cutl/details/export.hxx>
namespace cutl
{
struct LIBCUTL_EXPORT share
{
explicit
share (char id);
bool
operator== (share) const;
private:
char id_;
};
}
extern LIBCUTL_EXPORT cutl::share shared;
extern LIBCUTL_EXPORT cutl::share exclusive;
LIBCUTL_EXPORT void*
operator new (std::size_t, cutl::share) throw (std::bad_alloc);
LIBCUTL_EXPORT void
operator delete (void*, cutl::share) throw ();
namespace cutl
{
struct LIBCUTL_EXPORT not_shared: exception
{
virtual char const*
what () const throw ();
};
struct LIBCUTL_EXPORT shared_base
{
shared_base ();
shared_base (shared_base const&);
shared_base&
operator= (shared_base const&);
void
_inc_ref ();
bool
_dec_ref ();
std::size_t
_ref_count () const;
void*
operator new (std::size_t, share) throw (std::bad_alloc);
void
operator delete (void*, share) throw ();
void
operator delete (void*) throw ();
protected:
std::size_t counter_;
};
template <typename X>
inline X*
inc_ref (X*);
template <typename X>
inline void
dec_ref (X*);
template <typename X>
inline std::size_t
ref_count (X const*);
}
#include <cutl/shared-ptr/base.ixx>
#include <cutl/shared-ptr/base.txx>
#endif // CUTL_SHARED_PTR_BASE_HXX
|