/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #if ( \ defined(BUTTER_FUNCTION_OVERRIDE_INCLUDE) && \ defined(BUTTER_FUNCTION_OVERRIDE)) #include BUTTER_FUNCTION_OVERRIDE_INCLUDE #elif defined(BUTTER_USE_FOLLY_CONTAINERS) #include #else #include #endif namespace facebook { namespace butter { #if ( \ defined(BUTTER_FUNCTION_OVERRIDE_INCLUDE) && \ defined(BUTTER_FUNCTION_OVERRIDE)) template using function = BUTTER_FUNCTION_OVERRIDE; #elif defined(BUTTER_USE_FOLLY_CONTAINERS) template using function = folly::Function; #else template using function = std::function; #endif } // namespace butter } // namespace facebook