diff options
author | Hanoh Haim <hhaim@cisco.com> | 2015-08-26 15:50:06 +0300 |
---|---|---|
committer | Hanoh Haim <hhaim@cisco.com> | 2015-08-26 15:50:06 +0300 |
commit | 53f0e28d7f30c7175cbb15884c309613593859d8 (patch) | |
tree | e75ff499233519baa6c50c60fa0c726da7b42e03 /external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h | |
parent | a628a35b10fbd38211c353f506a8c49c2cc3dd7e (diff) | |
parent | 00d6f001971b324bb9c884aaf0384a4cee076550 (diff) |
Merge branch 'lib_fix'
Diffstat (limited to 'external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h')
-rw-r--r-- | external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h b/external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h new file mode 100644 index 00000000..e483dc4b --- /dev/null +++ b/external_libs/yaml-cpp/include/yaml-cpp/contrib/anchordict.h @@ -0,0 +1,42 @@ +#ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 +#define ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 + +#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 +#pragma once +#endif + +#include <vector> + +#include "../anchor.h" + +namespace YAML +{ + /// AnchorDict + /// . An object that stores and retrieves values correlating to anchor_t + /// values. + /// . Efficient implementation that can make assumptions about how anchor_t + /// values are assigned by the Parser class. + template <class T> + class AnchorDict + { + public: + void Register(anchor_t anchor, T value) + { + if (anchor > m_data.size()) + { + m_data.resize(anchor); + } + m_data[anchor - 1] = value; + } + + T Get(anchor_t anchor) const + { + return m_data[anchor - 1]; + } + + private: + std::vector<T> m_data; + }; +} + +#endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 |