summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/tag_array.h10
-rw-r--r--include/tag_primitive.h8
2 files changed, 15 insertions, 3 deletions
diff --git a/include/tag_array.h b/include/tag_array.h
index c59249b571..be9591c0f3 100644
--- a/include/tag_array.h
+++ b/include/tag_array.h
@@ -32,7 +32,7 @@ namespace detail
{
///Meta-struct that holds the tag_type value for a specific array type
template<class T> struct get_array_type
- { static_assert(sizeof(T) != sizeof(T), "Invalid type paramter for tag_primitive, can only use byte or int"); };
+ { static_assert(sizeof(T) != sizeof(T), "Invalid type paramter for tag_array, can only use byte or int"); };
template<> struct get_array_type<int8_t> : public std::integral_constant<tag_type, tag_type::Byte_Array> {};
template<> struct get_array_type<int32_t> : public std::integral_constant<tag_type, tag_type::Int_Array> {};
@@ -73,8 +73,8 @@ public:
* @brief Accesses a value by index with bounds checking
* @throw std::out_of_range if the index is out of range
*/
- T& at(size_t i);
- T at(size_t i) const;
+ T& at(size_t i) { return data.at(i); }
+ T at(size_t i) const { return data.at(i); }
/**
* @brief Accesses a value by index
@@ -124,6 +124,10 @@ template<class T> bool operator!=(const tag_array<T>& lhs, const tag_array<T>& r
typedef tag_array<int8_t> tag_byte_array;
typedef tag_array<int32_t> tag_int_array;
+//Explicit instantiations
+template class NBT_EXPORT tag_array<int8_t>;
+template class NBT_EXPORT tag_array<int32_t>;
+
}
#endif // TAG_ARRAY_H_INCLUDED
diff --git a/include/tag_primitive.h b/include/tag_primitive.h
index 07ae985559..e3d5111e76 100644
--- a/include/tag_primitive.h
+++ b/include/tag_primitive.h
@@ -77,6 +77,14 @@ typedef tag_primitive<int64_t> tag_long;
typedef tag_primitive<float> tag_float;
typedef tag_primitive<double> tag_double;
+//Explicit instantiations
+template class NBT_EXPORT tag_primitive<int8_t>;
+template class NBT_EXPORT tag_primitive<int16_t>;
+template class NBT_EXPORT tag_primitive<int32_t>;
+template class NBT_EXPORT tag_primitive<int64_t>;
+template class NBT_EXPORT tag_primitive<float>;
+template class NBT_EXPORT tag_primitive<double>;
+
template<class T>
void tag_primitive<T>::read_payload(io::stream_reader& reader)
{