Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AEvil_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 A_EVIL_DECL_HPP
11 #define A_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 callBEvil(...)
22 template<class T> class BEvil;
23 
24 
27 template<class T>
28 class AEvil : public EvilBase<T> {
29 public:
31  void callBEvil(const BEvil<T> &bEvil, 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 AEvil<T>);
46 }
47 
48 
49 } // namespace EvilPack
50 
51 
52 #endif // A_EVIL_DECL_HPP
A subclass of EvilBase that calls BEvil.
Definition: AEvil_decl.hpp:28
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
RCP< AEvil< T > > aEvil()
Nonmember constructor.
Definition: AEvil_decl.hpp:43
void callBEvil(const BEvil< T > &bEvil, const T &obj) const
Definition: AEvil_def.hpp:26
Smart reference counting pointer class for automatic garbage collection.
void soundOff(const T &obj) const
Definition: AEvil_def.hpp:35
Evil base class that people often write with a factory function to all of the subclasses in the inter...
A subclass of EvilBase that calls AEvil.
Definition: AEvil_decl.hpp:22