Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BEvil_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef B_EVIL_DECL_HPP
11 #define B_EVIL_DECL_HPP
12 
13 // Only include the declaration, not any implementations in case of cicular
14 // dependencies!
15 #include "EvilBase_decl.hpp"
16 
17 
18 namespace EvilPack {
19 
20 
21 // Need a forward for B to declare function callAEvil(...)
22 template<class T> class AEvil;
23 
24 
27 template<class T>
28 class BEvil : public EvilBase<T> {
29 public:
31  void callAEvil(const AEvil<T> &aEvil, const T& obj) const;
33  void soundOff(const T& obj) const;
34 };
35 
36 
41 template<class T>
42 inline
44 {
45  return Teuchos::rcp(new BEvil<T>);
46 }
47 
48 
49 } // namespace EvilPack
50 
51 
52 #endif // B_EVIL_DECL_HPP
void callAEvil(const AEvil< T > &aEvil, const T &obj) const
Definition: BEvil_def.hpp:26
void soundOff(const T &obj) const
Definition: BEvil_def.hpp:35
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
Smart reference counting pointer class for automatic garbage collection.
RCP< BEvil< T > > bEvil()
Nonmember constructor.
Definition: BEvil_decl.hpp:43
A subclass of EvilBase that calls AEvil.
Definition: AEvil_decl.hpp:22