template uint32_t CircleConst::size<DT>(void) const; \
template void CircleConst::size<DT>(uint32_t); \
C++ scalar type corresponding to each DataType.
88{
89 assert(
dtype() == loco::DataType::STRING);
90 assert(_data.size() == 0);
91 return _strings.size();
92}
93
94template <> void CircleConst::size<loco::DataType::STRING>(uint32_t l)
95{
96 assert(
dtype() == loco::DataType::STRING);
97 assert(_data.size() == 0);
98 _strings.resize(l);
99}
100
101template <> const std::string &CircleConst::at<loco::DataType::STRING>(uint32_t n) const
102{
103 assert(
dtype() == loco::DataType::STRING);
104 assert(n < _strings.size());
105 return _strings.at(n);
106}
107
108template <> std::string &CircleConst::at<loco::DataType::STRING>(uint32_t n)
109{
110 assert(
dtype() == loco::DataType::STRING);
111 assert(n < _strings.size());
112 return _strings.at(n);
113}
114
115template <> const std::string &CircleConst::scalar<loco::DataType::STRING>(void) const
116{
117 assert(
dtype() == loco::DataType::STRING);
118 assert(1 == _strings.size());
119 return _strings.at(0);
120}
121
122template <> std::string &CircleConst::scalar<loco::DataType::STRING>(void)
123{
124 assert(
dtype() == loco::DataType::STRING);
125 assert(1 == _strings.size());
126 return _strings.at(0);
127}
128
129}