Commit 68fc7770 authored by Alexey Kozhevnikov's avatar Alexey Kozhevnikov Committed by Facebook Github Bot

Fix container compilation with MSVC when intrinsics are disabled

Summary: MSVC wants template arguments to have exact same names in forward declarations.

Reviewed By: yfeldblum

Differential Revision: D9780751

fbshipit-source-id: 18cc529603c128e4c5d5a20bc61e0e44c0d0240c
parent 997b8a34
......@@ -94,9 +94,15 @@ class F14BasicMap : public std::unordered_map<K, M, H, E, A> {
} // namespace detail
} // namespace f14
template <typename K, typename M, typename H, typename E, typename A>
class F14ValueMap : public f14::detail::F14BasicMap<K, M, H, E, A> {
using Super = f14::detail::F14BasicMap<K, M, H, E, A>;
template <
typename Key,
typename Mapped,
typename Hasher,
typename KeyEqual,
typename Alloc>
class F14ValueMap
: public f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......@@ -111,9 +117,15 @@ class F14ValueMap : public f14::detail::F14BasicMap<K, M, H, E, A> {
}
};
template <typename K, typename M, typename H, typename E, typename A>
class F14NodeMap : public f14::detail::F14BasicMap<K, M, H, E, A> {
using Super = f14::detail::F14BasicMap<K, M, H, E, A>;
template <
typename Key,
typename Mapped,
typename Hasher,
typename KeyEqual,
typename Alloc>
class F14NodeMap
: public f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......@@ -128,9 +140,15 @@ class F14NodeMap : public f14::detail::F14BasicMap<K, M, H, E, A> {
}
};
template <typename K, typename M, typename H, typename E, typename A>
class F14VectorMap : public f14::detail::F14BasicMap<K, M, H, E, A> {
using Super = f14::detail::F14BasicMap<K, M, H, E, A>;
template <
typename Key,
typename Mapped,
typename Hasher,
typename KeyEqual,
typename Alloc>
class F14VectorMap
: public f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicMap<Key, Mapped, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......
......@@ -90,9 +90,10 @@ class F14BasicSet : public std::unordered_set<K, H, E, A> {
} // namespace detail
} // namespace f14
template <typename K, typename H, typename E, typename A>
class F14NodeSet : public f14::detail::F14BasicSet<K, H, E, A> {
using Super = f14::detail::F14BasicSet<K, H, E, A>;
template <typename Key, typename Hasher, typename KeyEqual, typename Alloc>
class F14NodeSet
: public f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......@@ -107,9 +108,10 @@ class F14NodeSet : public f14::detail::F14BasicSet<K, H, E, A> {
}
};
template <typename K, typename H, typename E, typename A>
class F14ValueSet : public f14::detail::F14BasicSet<K, H, E, A> {
using Super = f14::detail::F14BasicSet<K, H, E, A>;
template <typename Key, typename Hasher, typename KeyEqual, typename Alloc>
class F14ValueSet
: public f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......@@ -124,9 +126,10 @@ class F14ValueSet : public f14::detail::F14BasicSet<K, H, E, A> {
}
};
template <typename K, typename H, typename E, typename A>
class F14VectorSet : public f14::detail::F14BasicSet<K, H, E, A> {
using Super = f14::detail::F14BasicSet<K, H, E, A>;
template <typename Key, typename Hasher, typename KeyEqual, typename Alloc>
class F14VectorSet
: public f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc> {
using Super = f14::detail::F14BasicSet<Key, Hasher, KeyEqual, Alloc>;
public:
using typename Super::value_type;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment