#ifndef ANDROID_PDX_RPC_FIND_REPLACE_H_ #define ANDROID_PDX_RPC_FIND_REPLACE_H_ #include #include namespace android { namespace pdx { namespace rpc { // Utility class to capture types to find and replace. template struct FindReplace; template using IsSameBaseType = typename std::is_same::type, typename std::decay::type>; // Replaces the type Subject with type Replace if type Subject is the same type // as type Find, excluding cv-reference qualifiers in the match. template using ReplaceType = typename std::conditional::value, CopyCVReferenceType, Subject>::type; // Determines whether the type Find (excluding cv-reference qualifiers) is in // the given parameter pack. template struct ContainsType : std::true_type {}; template struct ContainsType : std::conditional::value, std::true_type, ContainsType>::type {}; template struct ContainsType : std::false_type {}; } // namespace rpc } // namespace pdx } // namespace android #endif // ANDROID_PDX_RPC_FIND_REPLACE_H_