9 #ifndef LLVM_CLANG_TOOLING_REFACTORING_REFACTORINGOPTIONVISITOR_H
10 #define LLVM_CLANG_TOOLING_REFACTORING_REFACTORINGOPTIONVISITOR_H
13 #include <type_traits>
18 class RefactoringOption;
38 template <
typename ClassT>
39 static auto check(ClassT *) ->
typename std::is_same<
40 decltype(std::declval<RefactoringOptionVisitor>().visit(
41 std::declval<RefactoringOption>(), *std::declval<
Optional<T> *>())),
44 template <
typename>
static std::false_type check(...);
47 using Type = decltype(check<RefactoringOptionVisitor>(
nullptr));
61 #endif // LLVM_CLANG_TOOLING_REFACTORING_REFACTORINGOPTIONVISITOR_H