rttr
0.9.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Friends
Macros
Pages
detail
destructor_container.h
Go to the documentation of this file.
1
/************************************************************************************
2
* *
3
* Copyright (c) 2014 Axel Menzel <info@axelmenzel.de> *
4
* *
5
* This file is part of RTTR (Run Time Type Reflection) *
6
* License: MIT License *
7
* *
8
* Permission is hereby granted, free of charge, to any person obtaining *
9
* a copy of this software and associated documentation files (the "Software"), *
10
* to deal in the Software without restriction, including without limitation *
11
* the rights to use, copy, modify, merge, publish, distribute, sublicense, *
12
* and/or sell copies of the Software, and to permit persons to whom the *
13
* Software is furnished to do so, subject to the following conditions: *
14
* *
15
* The above copyright notice and this permission notice shall be included in *
16
* all copies or substantial portions of the Software. *
17
* *
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
19
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
20
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
21
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
22
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
23
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *
24
* SOFTWARE. *
25
* *
26
*************************************************************************************/
27
28
#ifndef __RTTR_DESTRUCTOR_CONTAINER_H__
29
#define __RTTR_DESTRUCTOR_CONTAINER_H__
30
31
#include "
rttr/base/core_prerequisites.h
"
32
#include "
rttr/detail/destructor_container_base.h
"
33
#include "
rttr/variant.h
"
34
35
namespace
rttr
36
{
37
namespace
detail
38
{
39
40
template
<
typename
ClassType>
41
class
destructor_container :
public
destructor_container_base
42
{
43
public
:
44
type get_destructed_type()
const
{
return
type::get<ClassType*>(); }
45
46
void
invoke(variant& obj)
const
47
{
48
if
(obj.is_type<ClassType*>())
49
{
50
delete
obj.get_value<ClassType*>();
51
obj = variant();
52
}
53
}
54
};
55
56
}
// end namespace detail
57
}
// end namespace rttr
58
59
#endif // __RTTR_DESTRUCTOR_CONTAINER_H__
variant.h
core_prerequisites.h
destructor_container_base.h
Generated on Sun Jul 13 2014 19:19:14 for rttr by
1.8.7