NSVD Reader  0.0.1
EnumeratedValue.hpp
Go to the documentation of this file.
1 
5 /*
6  * These codes are licensed under CC0.
7  * http://creativecommons.org/publicdomain/zero/1.0/
8  */
9 #ifndef __NODAMUSHI_SVD_NORMALIZED_ENUMERATEDVALUE_HPP__
10 #define __NODAMUSHI_SVD_NORMALIZED_ENUMERATEDVALUE_HPP__
11 
12 # include <cstdint>
14 
15 namespace nodamushi{
16 namespace svd{
17 namespace normalized{
18 
24 template<typename STRREF>struct EnumeratedValue
25 {
27  STRREF name;
29  STRREF description;
33  bool isDefault;
34 
35 
37  operator bool(){return !isDefault;}
38  bool is_default()const noexcept{return isDefault;}
40  uint64_t get_value()const noexcept{return value.get_value();}
41 
42  EnumeratedValue()=default;
44  EnumeratedValue(const EnumeratedValue&)=default;
45 
49  template<typename T>
50  EnumeratedValue(const T& src):
51  name(src.name.get("")),
52  description(src.description.get("")),
53  value(src.value? *src.value:EnumeratedNumber{}),
54  isDefault(src.isDefault? *src.isDefault:false){}
55 
56 };
57 
58 }}} // end namespace
59 
60 #endif // __NODAMUSHI_SVD_NORMALIZED_ENUMERATEDVALUE_HPP__
uint64_t get_value() const noexcept
value.get_value()
This class reperesents SVD(xml) element / attribute.
Definition: value.hpp:53
EnumeratedNumber.
Decode and represent enemeratedValue.value.