VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtForwardDeclare.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 #pragma once
10 
11 #include <boost/unordered_set.hpp>
12 
13 #include <list>
14 #include <map>
15 #include <vector>
16 #include <deque>
17 #include <string>
18 
19 #define FORWARD_DECLARE(T) namespace makVrv {\
20  class T;\
21  typedef std::list<T*> List##T##s; \
22  typedef std::vector<T*> Vector##T##s; \
23  typedef boost::unordered_set<T*> UnorderedSet##T##s; \
24  typedef std::map<std::string, T*> Map##T##s; \
25  typedef std::list<const T*> ConstList##T##s; \
26  typedef std::vector<const T*> ConstVector##T##s; \
27  typedef boost::unordered_set<const T*> ConstUnorderedSet##T##s; \
28  typedef std::map<std::string, const T*> ConstMap##T##s; \
29  } //namespace makVrv
30 
31 #define FORWARD_DECLARE_DIFFERENT_SUFFIX(T,U) namespace makVrv {\
32  class T;\
33  typedef std::list<T*> List##U##s; \
34  typedef std::vector<T*> Vector##U##s; \
35  typedef std::deque<T*> Deque##U##s; \
36  typedef boost::unordered_set<T*> UnorderedSet##U##s; \
37  typedef std::map<std::string, T*> Map##U##s; \
38  typedef std::list<const T*> ConstList##U##s; \
39  typedef std::vector<const T*> ConstVector##U##s; \
40  typedef std::deque<const T*> ConstDeque##U##s; \
41  typedef boost::unordered_set<const T*> ConstUnorderedSet##U##s; \
42  typedef std::map<std::string, const T*> ConstMap##U##s; \
43  } //namespace makVrv
44 
45 
46 #define FORWARD_DECLARE_ALT_PLURAL(T) namespace makVrv {\
47  class T;\
48  typedef std::list<T*> List##T##es; \
49  typedef std::vector<T*> Vector##T##es; \
50  typedef boost::unordered_set<T*> UnorderedSet##T##es; \
51  typedef std::map<std::string, T*> Map##T##es; \
52  typedef std::list<const T*> ConstList##T##es; \
53  typedef std::vector<const T*> ConstVector##T##es; \
54  typedef boost::unordered_set<const T*> ConstUnorderedSet##T##es; \
55  typedef std::map<std::string, const T*> ConstMap##T##es; \
56  } //namespace makVrv

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)