CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
Utility
test
testSharedPtrConvertible.cc
Go to the documentation of this file.
1
// ======================================================================
2
//
3
// Test compilability and basic functionality of Utility/memory.h
4
//
5
// Author: W. E. Brown, 2010-03-19, adapted from the boost library's
6
// shared_ptr and related functionality whose internal attributions bear
7
// the following various notices:
8
//
9
// Copyright (c) 2008 Peter Dimov
10
// Distributed under the Boost Software License, Version 1.0.
11
// See http://www.boost.org/LICENSE_1_0.txt
12
//
13
// ======================================================================
14
15
16
#include "CLHEP/Utility/noncopyable.h"
17
#include "CLHEP/Utility/memory.h"
18
19
#include <cassert>
20
21
22
using namespace
CLHEP;
23
using
CLHEP::shared_ptr
;
24
25
26
class
incomplete
;
27
28
struct
X
29
{ };
30
31
struct
Y
32
{ };
33
34
struct
Z
:
public
X
35
{ };
36
37
int
f
(
shared_ptr<void const>
)
38
{
return
1; }
39
40
int
f
(
shared_ptr<int>
)
41
{
return
2; }
42
43
int
f
(
shared_ptr<incomplete>
)
44
{
return
3; }
45
46
int
g
(
shared_ptr<X>
)
47
{
return
4; }
48
49
int
g
(
shared_ptr<Y>
)
50
{
return
5; }
51
52
int
g
(
shared_ptr<incomplete>
)
53
{
return
6; }
54
55
int
main
()
56
{
57
shared_ptr<double>
p1;
58
assert( 1 ==
f
( p1 ) );
59
assert( 1 ==
f
(
shared_ptr<double>
() ) );
60
61
shared_ptr<Z>
p2;
62
assert( 4 ==
g
( p2 ) );
63
assert( 4 ==
g
(
shared_ptr<Z>
() ) );
64
65
return
0;
66
}
Generated on Sun Jun 17 2012 08:08:28 for CLHEP by
1.8.1.1