summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-06-01 08:54:42 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-06-01 08:54:42 +0000
commitc3b919224b2b02826bddf55535535ab47638844d (patch)
tree728f7d1ab81bbbed0c1e777c2c63bcc516d8810a /Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
parent6232e1d5fac4d935744926829f80d53a750cbf0b (diff)
harfbuzz-2.5.1
git-svn-id: svn://tug.org/texlive/trunk@51283 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh21
1 files changed, 16 insertions, 5 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
index 007db9e40c5..38104fdb82e 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh
@@ -167,10 +167,21 @@ template <unsigned Pos=1, typename Appl, typename V>
auto hb_partial (Appl&& a, V&& v) HB_AUTO_RETURN
(( hb_partial_t<Pos, Appl, V> (a, v) ))
+/* The following hacky replacement version is to make Visual Stuiod build:. */ \
+/* https://github.com/harfbuzz/harfbuzz/issues/1730 */ \
+#ifdef _MSC_VER
#define HB_PARTIALIZE(Pos) \
template <typename _T> \
- auto operator () (_T&& _v) const HB_AUTO_RETURN (hb_partial<Pos> (this, hb_forward<_T> (_v))) \
+ decltype(auto) operator () (_T&& _v) const \
+ { return hb_partial<Pos> (this, hb_forward<_T> (_v)); } \
static_assert (true, "")
+#else
+#define HB_PARTIALIZE(Pos) \
+ template <typename _T> \
+ auto operator () (_T&& _v) const HB_AUTO_RETURN \
+ (hb_partial<Pos> (this, hb_forward<_T> (_v))) \
+ static_assert (true, "")
+#endif
struct
@@ -807,7 +818,7 @@ struct hb_bitwise_and
static constexpr bool passthru_left = false;
static constexpr bool passthru_right = false;
template <typename T> auto
- operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & b)
+ operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & b)
}
HB_FUNCOBJ (hb_bitwise_and);
struct hb_bitwise_or
@@ -815,7 +826,7 @@ struct hb_bitwise_or
static constexpr bool passthru_left = true;
static constexpr bool passthru_right = true;
template <typename T> auto
- operator () (const T &a, const T &b) const HB_AUTO_RETURN (a | b)
+ operator () (const T &a, const T &b) const HB_AUTO_RETURN (a | b)
}
HB_FUNCOBJ (hb_bitwise_or);
struct hb_bitwise_xor
@@ -823,7 +834,7 @@ struct hb_bitwise_xor
static constexpr bool passthru_left = true;
static constexpr bool passthru_right = true;
template <typename T> auto
- operator () (const T &a, const T &b) const HB_AUTO_RETURN (a ^ b)
+ operator () (const T &a, const T &b) const HB_AUTO_RETURN (a ^ b)
}
HB_FUNCOBJ (hb_bitwise_xor);
struct hb_bitwise_sub
@@ -831,7 +842,7 @@ struct hb_bitwise_sub
static constexpr bool passthru_left = true;
static constexpr bool passthru_right = false;
template <typename T> auto
- operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & ~b)
+ operator () (const T &a, const T &b) const HB_AUTO_RETURN (a & ~b)
}
HB_FUNCOBJ (hb_bitwise_sub);