Test new solution for HB_PARTIALIZE

Just testing bots.  Will finish based on results.
This commit is contained in:
Behdad Esfahbod 2019-06-10 12:33:23 -07:00
parent 4a2b58555f
commit a0c4900799
1 changed files with 1 additions and 17 deletions

View File

@ -186,27 +186,11 @@ auto hb_partial (Appl&& a, V&& v) HB_AUTO_RETURN
* that "this+0" is illegal in the trailing decltype position since at * that "this+0" is illegal in the trailing decltype position since at
* that point this points to incomplete type! But seems to do the trick. * that point this points to incomplete type! But seems to do the trick.
*/ */
#ifdef _MSC_VER
/* https://github.com/harfbuzz/harfbuzz/issues/1730 */ \
#define HB_PARTIALIZE(Pos) \
template <typename _T> \
decltype(auto) operator () (_T&& _v) const \
{ return hb_partial<Pos> (this, hb_forward<_T> (_v)); } \
static_assert (true, "")
#elif !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ <= 8)
/* https://github.com/harfbuzz/harfbuzz/issues/1724 */
#define HB_PARTIALIZE(Pos) \ #define HB_PARTIALIZE(Pos) \
template <typename _T> \ template <typename _T> \
auto operator () (_T&& _v) const HB_AUTO_RETURN \ auto operator () (_T&& _v) const HB_AUTO_RETURN \
(hb_partial<Pos> (this+0, hb_forward<_T> (_v))) \ (hb_partial<Pos> (+this, hb_forward<_T> (_v))) \
static_assert (true, "") 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 struct