summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorljfa-ag <ljfa-ag@web.de>2015-07-28 20:11:55 +0200
committerljfa-ag <ljfa-ag@web.de>2015-07-28 20:27:03 +0200
commit8d506948615de1de5d8a1510a1d1b82de3738cfa (patch)
tree57d303d4d31a094cb69edda6b5c0eb7e32a95439
parent9d4d2455a4a562f0883c73ec8e87c469d38069e5 (diff)
downloadProject-Tick-8d506948615de1de5d8a1510a1d1b82de3738cfa.tar.gz
Project-Tick-8d506948615de1de5d8a1510a1d1b82de3738cfa.zip
Meh, we do need to instantiate operator== after all
compiler optimizations...
-rw-r--r--src/tag_array.cpp4
-rw-r--r--src/tag_primitive.cpp7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/tag_array.cpp b/src/tag_array.cpp
index 942d1f5c78..a944899402 100644
--- a/src/tag_array.cpp
+++ b/src/tag_array.cpp
@@ -111,9 +111,11 @@ bool operator!=(const tag_array<T>& lhs, const tag_array<T>& rhs)
return !(lhs == rhs);
}
-//Enforce template instantiations. Just as for tag_primitive we have to instantiate operator!=
+//Enforce template instantiations
template class tag_array<int8_t>;
template class tag_array<int32_t>;
+template bool operator==<int8_t> (const tag_array<int8_t>& , const tag_array<int8_t>&);
+template bool operator==<int32_t>(const tag_array<int32_t>&, const tag_array<int32_t>&);
template bool operator!=<int8_t> (const tag_array<int8_t>& , const tag_array<int8_t>&);
template bool operator!=<int32_t>(const tag_array<int32_t>&, const tag_array<int32_t>&);
diff --git a/src/tag_primitive.cpp b/src/tag_primitive.cpp
index 27aabcfed5..69bd9695bd 100644
--- a/src/tag_primitive.cpp
+++ b/src/tag_primitive.cpp
@@ -81,7 +81,12 @@ template class tag_primitive<int32_t>;
template class tag_primitive<int64_t>;
template class tag_primitive<float>;
template class tag_primitive<double>;
-//Need to also instantiate operator!=, whereas operator== already gets instantiated in crtp_tag
+template bool operator==<int8_t> (const tag_primitive<int8_t>& , const tag_primitive<int8_t>&);
+template bool operator==<int16_t>(const tag_primitive<int16_t>&, const tag_primitive<int16_t>&);
+template bool operator==<int32_t>(const tag_primitive<int32_t>&, const tag_primitive<int32_t>&);
+template bool operator==<int64_t>(const tag_primitive<int64_t>&, const tag_primitive<int64_t>&);
+template bool operator==<float> (const tag_primitive<float>& , const tag_primitive<float>&);
+template bool operator==<double> (const tag_primitive<double>& , const tag_primitive<double>&);
template bool operator!=<int8_t> (const tag_primitive<int8_t>& , const tag_primitive<int8_t>&);
template bool operator!=<int16_t>(const tag_primitive<int16_t>&, const tag_primitive<int16_t>&);
template bool operator!=<int32_t>(const tag_primitive<int32_t>&, const tag_primitive<int32_t>&);