QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
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