Loading [MathJax]/extensions/tex2jax.js
QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
y
Variables
a
b
c
d
e
f
i
l
m
n
p
r
s
t
Typedefs
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
v
y
z
Enumerations
Enumerator
a
b
c
d
e
f
g
h
j
l
m
n
o
p
q
s
t
u
w
y
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
g
h
i
k
m
o
p
r
s
t
u
v
w
z
Enumerations
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
y
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Related Functions
a
b
c
d
f
i
m
n
o
p
q
r
s
Files
File List
File Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Macros
b
d
i
m
n
p
q
s
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
ql
patterns
curiouslyrecurring.hpp
Go to the documentation of this file.
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2003 RiskMap srl
5
6
This file is part of QuantLib, a free-software/open-source library
7
for financial quantitative analysts and developers - http://quantlib.org/
8
9
QuantLib is free software: you can redistribute it and/or modify it
10
under the terms of the QuantLib license. You should have received a
11
copy of the license along with this program; if not, please email
12
<quantlib-dev@lists.sf.net>. The license is also available online at
13
<http://quantlib.org/license.shtml>.
14
15
This program is distributed in the hope that it will be useful, but WITHOUT
16
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
FOR A PARTICULAR PURPOSE. See the license for more details.
18
*/
19
20
/*! \file curiouslyrecurring.hpp
21
\brief Curiously recurring template pattern
22
*/
23
24
#ifndef quantlib_curiously_recurring_h
25
#define quantlib_curiously_recurring_h
26
27
#include <
ql/qldefines.hpp
>
28
29
namespace
QuantLib
{
30
31
//! Support for the curiously recurring template pattern
32
/*! See James O. Coplien. A Curiously Recurring Template Pattern.
33
In Stanley B. Lippman, editor, C++ Gems, 135-144.
34
Cambridge University Press, New York, New York, 1996.
35
36
\ingroup patterns
37
*/
38
template
<
class
Impl>
39
class
CuriouslyRecurringTemplate
{
40
protected
:
41
// not meant to be instantiated as such
42
CuriouslyRecurringTemplate
() =
default
;
43
~CuriouslyRecurringTemplate
() =
default
;
44
// support for the curiously recurring template pattern
45
Impl&
impl
() {
46
return
static_cast<
Impl&
>
(*this);
47
}
48
const
Impl&
impl
()
const
{
49
return
static_cast<
const
Impl&
>
(*this);
50
}
51
};
52
53
}
54
55
56
#endif
QuantLib::CuriouslyRecurringTemplate
Support for the curiously recurring template pattern.
Definition:
curiouslyrecurring.hpp:39
QuantLib::CuriouslyRecurringTemplate::CuriouslyRecurringTemplate
CuriouslyRecurringTemplate()=default
QuantLib::CuriouslyRecurringTemplate::~CuriouslyRecurringTemplate
~CuriouslyRecurringTemplate()=default
QuantLib::CuriouslyRecurringTemplate::impl
const Impl & impl() const
Definition:
curiouslyrecurring.hpp:48
QuantLib::CuriouslyRecurringTemplate::impl
Impl & impl()
Definition:
curiouslyrecurring.hpp:45
QuantLib
Definition:
any.hpp:35
qldefines.hpp
Global definitions and compiler switches.
Generated by
Doxygen
1.9.5