Commit 00319abe authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Remove classname from free-invoke traits inner names

Summary: [Folly] Remove `classname` from free-invoke traits inner names - it's already present for disambiguation in the outer private namespace name. Also adjust some of the names better to fit a singular pattern.

Reviewed By: vitaut

Differential Revision: D18112947

fbshipit-source-id: 0a3e76a72a16fff7d4c127c2994a8c38639083e2
parent 67a1d1d5
...@@ -327,16 +327,16 @@ struct free_invoke_proxy { ...@@ -327,16 +327,16 @@ struct free_invoke_proxy {
*/ */
#define FOLLY_CREATE_FREE_INVOKE_TRAITS(classname, funcname, ...) \ #define FOLLY_CREATE_FREE_INVOKE_TRAITS(classname, funcname, ...) \
namespace classname##__folly_detail_invoke_ns { \ namespace classname##__folly_detail_invoke_ns { \
namespace classname##__folly_detail_invoke_ns_inline { \ namespace __folly_detail_invoke_base { \
FOLLY_PUSH_WARNING \ FOLLY_PUSH_WARNING \
FOLLY_CLANG_DISABLE_WARNING("-Wunused-function") \ FOLLY_CLANG_DISABLE_WARNING("-Wunused-function") \
void funcname(::folly::detail::invoke_private_overload&); \ void funcname(::folly::detail::invoke_private_overload&); \
FOLLY_POP_WARNING \ FOLLY_POP_WARNING \
} \ } \
using FB_ARG_2_OR_1( \ using FB_ARG_2_OR_1( \
classname##__folly_detail_invoke_ns_inline \ __folly_detail_invoke_base FOLLY_PP_DETAIL_APPEND_VA_ARG( \
FOLLY_PP_DETAIL_APPEND_VA_ARG(__VA_ARGS__))::funcname; \ __VA_ARGS__))::funcname; \
struct classname##__folly_detail_invoke { \ struct __folly_detail_invoke_obj { \
template <typename... Args> \ template <typename... Args> \
constexpr auto operator()(Args&&... args) const \ constexpr auto operator()(Args&&... args) const \
noexcept(noexcept(funcname(static_cast<Args&&>(args)...))) \ noexcept(noexcept(funcname(static_cast<Args&&>(args)...))) \
...@@ -345,9 +345,9 @@ struct free_invoke_proxy { ...@@ -345,9 +345,9 @@ struct free_invoke_proxy {
} \ } \
}; \ }; \
} \ } \
struct classname : ::folly::detail::free_invoke_proxy< \ struct classname \
classname##__folly_detail_invoke_ns:: \ : ::folly::detail::free_invoke_proxy< \
classname##__folly_detail_invoke> {} classname##__folly_detail_invoke_ns::__folly_detail_invoke_obj> {}
namespace folly { namespace folly {
namespace detail { namespace detail {
......
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