clang
23.0.0git
include
clang
ScalableStaticAnalysisFramework
Core
WholeProgramAnalysis
AnalysisTraits.h
Go to the documentation of this file.
1
//===- AnalysisTraits.h -----------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// Type traits for AnalysisResult subclasses.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_WHOLEPROGRAMANALYSIS_ANALYSISTRAITS_H
14
#define LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_WHOLEPROGRAMANALYSIS_ANALYSISTRAITS_H
15
16
#include "
clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisName.h
"
17
#include <type_traits>
18
19
namespace
clang::ssaf
{
20
21
/// Type trait that checks whether \p T has a static \c analysisName() method
22
/// returning \c AnalysisName. Used to enforce the convention on AnalysisResult
23
/// subclasses and analysis classes at instantiation time.
24
template
<
typename
T,
typename
=
void
>
25
struct
HasAnalysisName
: std::false_type {};
26
27
template
<
typename
T>
28
struct
HasAnalysisName
<T,
std
::void_t<decltype(T::analysisName())>>
29
: std::is_same<decltype(T::analysisName()), AnalysisName> {};
30
31
template
<
typename
T>
32
inline
constexpr
bool
HasAnalysisName_v
=
HasAnalysisName<T>::value
;
33
34
}
// namespace clang::ssaf
35
36
#endif
// LLVM_CLANG_SCALABLESTATICANALYSISFRAMEWORK_CORE_WHOLEPROGRAMANALYSIS_ANALYSISTRAITS_H
AnalysisName.h
clang::ssaf
Definition
UnsafeBufferUsage.h:17
clang::ssaf::HasAnalysisName_v
constexpr bool HasAnalysisName_v
Definition
AnalysisTraits.h:32
std
Definition
__clang_cuda_cmath.h:361
clang::ssaf::HasAnalysisName
Type trait that checks whether T has a static analysisName() method returning AnalysisName.
Definition
AnalysisTraits.h:25
Generated on
for clang by
1.14.0