diff options
author | Mike Buland <eichlan@xagasoft.com> | 2011-01-10 21:04:17 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2011-01-10 21:04:17 +0000 |
commit | 2ba3f84ab559da02a11aa000b3cecb3b3668af61 (patch) | |
tree | 266f450b512f607ec54d54af4fa8c13fdbe7ef91 /src/variant.h | |
parent | ea18007633b31901f2ae275cc0576c3f7ce99fc9 (diff) | |
parent | 3611f253f6fdfa4954d374ab85ddaa7f799c130c (diff) | |
download | libbu++-2ba3f84ab559da02a11aa000b3cecb3b3668af61.tar.gz libbu++-2ba3f84ab559da02a11aa000b3cecb3b3668af61.tar.bz2 libbu++-2ba3f84ab559da02a11aa000b3cecb3b3668af61.tar.xz libbu++-2ba3f84ab559da02a11aa000b3cecb3b3668af61.zip |
Merged in the core branch. This is a major update that fixes many things, and
changes many others, including source files that were deleted and renamed.
Before doing this update, I reccomend a full clean, or even a fresh checkout.
Things to note, most outstanding about this update:
- Bu::Socket was changed to Bu::TcpSocket and the default mode is blocking.
- All templatized container classes are SharedCore now, which is good, but
SharedCore is inherently non-reentrant safe. However, all SharedCore classes
have a "clone" function that return a non-shared copy of the object, safe for
passing into a reentrant safe function accessing shared memory.
Diffstat (limited to '')
-rw-r--r-- | src/variant.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/variant.h b/src/variant.h index 8e1203c..f659ad2 100644 --- a/src/variant.h +++ b/src/variant.h | |||
@@ -17,6 +17,7 @@ namespace Bu | |||
17 | { | 17 | { |
18 | class Formatter; | 18 | class Formatter; |
19 | class Variant; | 19 | class Variant; |
20 | /** @cond DEVEL */ | ||
20 | template<class t> class VariantType; | 21 | template<class t> class VariantType; |
21 | 22 | ||
22 | class VariantTypeRoot | 23 | class VariantTypeRoot |
@@ -92,7 +93,22 @@ namespace Bu | |||
92 | private: | 93 | private: |
93 | t data; | 94 | t data; |
94 | }; | 95 | }; |
95 | 96 | /** @endcond */ | |
97 | |||
98 | /** | ||
99 | * Store any data type and access it safely. Variant gives you a way to | ||
100 | * pass arbitrary data types around without having to worry about what | ||
101 | * type a variable is. It allows code to be easily extended and to manage | ||
102 | * data without having to know what type it is ahead of time. | ||
103 | * | ||
104 | * Because of the generic method that this class was implemented it may seem | ||
105 | * to have some drawbacks compared to other Variant classes you may have | ||
106 | * seen, however it is fairly easy to get it to do just about anything you | ||
107 | * may need. It is also very low overhead. On most compilers the class | ||
108 | * itself has only 3 words of overhead + the size of the variable you store | ||
109 | * in it. And, since many parts of it are templatized they can often be | ||
110 | * optimized quite a bit. | ||
111 | */ | ||
96 | class Variant | 112 | class Variant |
97 | { | 113 | { |
98 | public: | 114 | public: |