make subset of pushmi build in xplat
Summary: changes needed to add pushmi to xplat which is needed to make folly::Executor depend on pushmi. split from - D12912583 MSVC 15.6.7 (required to keep cuda working) issues: - __VA_ARGS__ results in a single token on MSVC and not on gcc or clang. I changed the macros to expand the single token so that it is parsed as multiuple tokens again - some template usage must be placed inside `decltype()` to work with MSVC - a nested set of macros using __VA_ARGS__ only worked on MSVC and clang when nested twice, but not when nested three times. changed the macros to use explicit parameters. - gave up on pushmi invoke/invoke_result_t, now uses folly:Invoke instead. - gave up on property_insert_t, removed usage that was needed for ExecutorTest - switched many uses of make_receiver/make_sender to full bespoke receiver/sender implementations. - disabled deduction guides on windows - disabled apply on windows - added additional disambiguity for function overloads that MSVC complained were redefinitions (only differed in SFINAE) also reduced to one `operator|` for this reason - restructured `__property_category_t` and `__properties_t` to reduce MSVC ICE and other issues. - MSVC did not like `property_set_element<POut, property_category_t<PIn>>` changed to `property_set_element<POut, PCategory>` - MSVC complained about implicitly deleted destructors for `property_set_insert` explicitly added them.. - MSVC does not like `)::value` sequence added `bool_v`. - replaced auto with explicit return types in some places. - added the missing `remove_cvref_t` In other news: - added tags.h to minimize Executor dependencies on pushmi - add `property_set_traits_disable_v` to allow EventBase to disable SequencedExecutor traits specialization - add support for building without exceptions to the customization points Reviewed By: ericniebler Differential Revision: D14686496 fbshipit-source-id: c3f195783fd9a5f77b997498c44d4eebef1afe57
Showing
This diff is collapsed.
Please register or sign in to comment