2401llvm,匹配器参考

返回类型名字参数
Matcher<attr>attrMatcher<Attr>...

匹配属性.

属性可附加各种不同的语法(包括关键字,C++11属性,GNU'__attribute'''MSVC'__declspec'',和''#pragma''等).也可能是隐含的.
给定

  struct [[nodiscard]] Foo{};void bar(int * __attribute__((nonnull)) );__declspec(noinline) void baz();#pragma omp declare simdint min();

attr()匹配"nodiscard","nonnull","noinline"和整个"#pragma"行.

返回类型名字参数
Matcher<CXXBaseSpecifier>cxxBaseSpecifierMatcher<CXXBaseSpecifier>...

匹配类基.

示例匹配公共虚B.

  class B {};class C : public virtual B {};
返回类型名字参数
Matcher<CXXCtorInitializer>cxxCtorInitializerMatcher<CXXCtorInitializer>...

匹配构造器初化器

示例匹配i(42).

  class C {C() : i(42) {}int i;};
返回类型名字参数
Matcher<Decl>accessSpecDeclMatcher<AccessSpecDecl>...

匹配C++访问限定器声明.

给定

  class C {public:int a;};

accessSpecDecl()匹配'public':

返回类型名字参数
Matcher<Decl>bindingDeclMatcher<BindingDecl>...

匹配绑定声明

示例,匹配foobar,匹配器=bindingDecl()

  auto [foo, bar] = std::make_pair{42, 42};
返回类型名字参数
Matcher<Decl>blockDeclMatcher<BlockDecl>...

匹配块声明.

示例匹配打印输入整数的无名块的声明.

  myFunc(^(int p) {printf("%d", p);})
返回类型名字参数
Matcher<Decl>classTemplateDeclMatcher<ClassTemplateDecl>...

匹配C++类模板声明.

示例匹配Z

  template<class T> class Z {};
返回类型名字参数
Matcher<Decl>classTemplatePartialSpecializationDeclMatcher<ClassTemplatePartialSpecializationDecl>...

匹配C++类模板部分特化.

给定

  template<class T1, class T2, int I>class A {};template<class T, int I>class A<T, T*, I> {};template<>class A<int, int, 1> {};

classTemplatePartialSpecializationDecl()TemplatePartialSpecializationDecl()A<T,T*,I>特化匹配,但不匹配A<int,int,1>.

返回类型名字参数
Matcher<Decl>classTemplateSpecializationDeclMatcher<ClassTemplateSpecializationDecl>...

匹配C++类模板特化.

给定

  template<typename T> class A {};template<> class A<double> {};A<int> a;

classTemplateSpecializationDecl()类模板特化Decl()

匹配特化A<int>A<double>

返回类型名字参数
Matcher<Decl>conceptDeclMatcher<ConceptDecl>...

匹配概念声明.

示例:匹配整数

  template<typename T>concept integral = std::is_integral_v<T>;
返回类型名字参数
Matcher<Decl>cxxConstructorDeclMatcher<CXXConstructorDecl>...

匹配C++构造器声明.

示例匹配Foo::Foo()Foo::Foo(int)

  class Foo {public:Foo();Foo(int);int DoSomething();};
返回类型名字参数
Matcher<Decl>cxxConversionDeclMatcher<CXXConversionDecl>...

匹配转换符号声明.

示例匹配符号.

  class X { operator int() const; };
返回类型名字参数
Matcher<Decl>cxxDeductionGuideDeclMatcher<CXXDeductionGuideDecl>...

匹配用户定义和隐式生成的推导.

示例匹配推导.

  template<typename T>class X { X(int) };X(int) -> X<int>;
返回类型名字参数
Matcher<Decl>cxxDestructorDeclMatcher<CXXDestructorDecl>...

匹配显式C++析构器声明.

示例匹配Foo::~Foo()

  class Foo {public:virtual ~Foo();};
返回类型名字参数
Matcher<Decl>cxxMethodDeclMatcher<CXXMethodDecl>...

匹配方法声明.

示例匹配y

  class X { void y(); };
返回类型名字参数
Matcher<Decl>cxxRecordDeclMatcher<CXXRecordDecl>...

匹配C++类声明.

示例匹配X,Z

  class X;template<class T> class Z {};
返回类型名字参数
Matcher<Decl>declMatcher<Decl>...

匹配声明.

示例匹配X,CC中的声明;

  void X();class C {friend X;};
返回类型名字参数
Matcher<Decl>declaratorDeclMatcher<DeclaratorDecl>...

匹配声明符声明(字段,变量,函数)和非类型模板参数声明.

给定

  class X { int y; };

declaratorDecl()匹配int y.

返回类型名字参数
Matcher<Decl>decompositionDeclMatcher<DecompositionDecl>...

匹配分解声明.

示例,匹配foobar声明节点,但不匹配数.
(匹配器=declStmt(has(decompositionDecl()))))

  int number = 42;auto [foo, bar] = std::make_pair{42, 42};
返回类型名字参数
Matcher<Decl>enumConstantDeclMatcher<EnumConstantDecl>...

匹配枚举常量.

示例匹配A,B,C

  enum X {A, B, C};
返回类型名字参数
Matcher<Decl>enumDeclMatcher<EnumDecl>...

匹配枚举声明.

示例匹配X

  enum X {A, B, C};
返回类型名字参数
Matcher<Decl>fieldDeclMatcher<FieldDecl>...

匹配字段声明.

给定

  class X { int m; };

fieldDecl()字段匹配'm'.

返回类型名字参数
Matcher<Decl>friendDeclMatcher<FriendDecl>...

匹配友声明.

给定

  class X { friend void foo(); };

friendDecl()匹配friend void foo()

返回类型名字参数
Matcher<Decl>functionDeclMatcher<functionDecl>...

匹配函数声明.

示例匹配f

  void f();
返回类型名字参数
Matcher<Decl>functionTemplateDeclMatcher<FunctionTemplateDecl>...

匹配C++函数模板声明.

示例匹配f

  template<class T> void f(T t) {}
返回类型名字参数
Matcher<Decl>indirectFieldDeclMatcher<IndirectFieldDecl>...

匹配间接字段声明.

给定

  struct X { struct { int a; }; };

indirectFieldDecl()匹配'a'.

返回类型名字参数
Matcher<Decl>labelDeclMatcher<LabelDecl>...

匹配标签的声明.

给定

goto FOO;
FOO:bar();

labelDecl()匹配'FOO:'

返回类型名字参数
Matcher<Decl>linkageSpecDeclMatcher<LinkageSpecDecl>...

匹配链接规范的声明.

给定

  extern "C" {}

linkageSpecDecl()匹配"extern"C"{}"

返回类型名字参数
Matcher<Decl>namedDeclMatcher<NamedDecl>...

匹配命名声明.

示例匹配X,S,匿名i联类型和U;

  typedef int X;struct S {union {int i;} U;};
返回类型名字参数
Matcher<Decl>namespaceAliasDeclMatcher<NamespaceAliasDecl>...

匹配名字空间别名的声明.

给定

  namespace test {}namespace alias = ::test;

namespaceAliasDecl()匹配"alias名字空间",但不匹配"测试名字空间"

返回类型名字参数
Matcher<Decl>namespaceDeclMatcher<NamespaceDecl>...

匹配名字空间的声明.

给定

  namespace {}namespace test {}

namespaceDecl()匹配"namespace{}""namespace test{}",

返回类型名字参数
Matcher<Decl>nonTypeTemplateParmDeclMatcher<NonTypeTemplateParmDecl>...

匹配非类型模板参数声明.

给定

  template <typename T, int N> struct C {};

nonTypeTemplateParmDecl()匹配"N",但不匹配"T".

返回类型名字参数
Matcher<Decl>parmVarDeclMatcher<ParmVarDecl>...

匹配参数变量声明.

给定

  void f(int x);

parmVarDecl()参数匹配int x.

返回类型名字参数
Matcher<Decl>recordDeclMatcher<RecordDecl>...

匹配类,结构和联声明.

示例匹配X,Z,US.

  class X;template<class T> class Z {};struct S {};union U {};
返回类型名字参数
Matcher<Decl>staticAssertDeclMatcher<StaticAssertDecl>...

匹配C++static_assert声明.

例:在

  struct S {int x;};static_assert(sizeof(S) == sizeof(int));

中,staticAssertDecl()匹配static_assert(sizeof(S)==sizeof(int)).

返回类型名字参数
Matcher<Decl>tagDeclMatcher<TagDecl>...

匹配标记声明.

示例匹配X,Z,U,S,E

  class X;template<class T> class Z {};struct S {};union U {};enum E {A, B, C};
返回类型名字参数
Matcher<Decl>templateTemplateParmDeclMatcher<TemplateTemplateParmDecl>...

匹配模板模板参数声明.

给定

  template <template <typename> class Z, int N> struct C {};

templateTypeParmDecl()匹配"Z",但不匹配"N".

返回类型名字参数
Matcher<Decl>templateTypeParmDeclMatcher<TemplateTypeParmDecl>...

匹配模板类型参数声明.

给定

  template <typename T, int N> struct C {};

templateTypeParmDecl()匹配"T",但不匹配"N".

返回类型名字参数
Matcher<Decl>translationUnitDeclMatcher<TranslationUnitDecl>...

匹配顶部声明环境.

给定

  int X;namespace NS {int Y;}  //`NS`名字空间

decl(hasDeclContext(translationUnitDecl()))匹配"int X",但不匹配"int Y".

返回类型名字参数
Matcher<Decl>typeAliasDeclMatcher<TypeAliasDecl>...

匹配类型别名声明.

给定

  typedef int X;using Y = int;

typeAliasDecl(),匹配"using Y=int",但不匹配"typedef int X"

返回类型名字参数
Matcher<Decl>typeAliasTemplateDeclMatcher<TypeAliasTemplateDecl>...

匹配类型别名模板声明.

typeAliasTemplateDecl()匹配

  template <typename T>using Y = X<T>;
返回类型名字参数
Matcher<Decl>typedefDeclMatcher<TypedefDecl>...

匹配typedef声明.

给定

  typedef int X;using Y = int;

typedefDecl()型匹配"typedef int X",但不匹配"using Y=int"

返回类型名字参数
Matcher<Decl>typedefNameDeclMatcher<TypedefNameDecl>...

匹配typedef名声明.

给定

  typedef int X;using Y = int;

typedefNameDecl()型,匹配"typedef int X""using Y=int"

返回类型名字参数
Matcher<Decl>unresolvedUsingTypenameDeclMatcher<UnresolvedUsingTypenameDecl>...

匹配未解析的包含型名的用型名声明

给定

  template <typename T>struct Base { typedef T Foo; };template<typename T>struct S : private Base<T> {using typename Base<T>::Foo;};

unresolvedUsingTypenameDecl()匹配using Base<T>::Foo

返回类型名字参数
Matcher<Decl>unresolvedUsingValueDeclMatcher<UnresolvedUsingValueDecl>...

匹配未解析用值声明.

给定

  template<typename X>class C : private X {using X::x;};

unresolvedUsingValueDecl()匹配using X::x

返回类型名字参数
Matcher<Decl>usingDeclMatcher<UsingDecl>...

匹配用声明.

给定

  namespace X { int x; }using X::x;

usingDecl(),匹配用 X::x

返回类型名字参数
Matcher<Decl>usingDirectiveDeclMatcher<UsingDirectiveDecl>...

匹配用名字空间声明.

给定

  namespace X { int x; }using namespace X;

usingDirectiveDecl()匹配用 名字空间 X

返回类型名字参数
Matcher<Decl>usingEnumDeclMatcher<UsingEnumDecl>...

匹配using-enum声明.

给定

  namespace X { enum x {...}; }using enum X::x;

usingEnumDecl(),匹配用 枚举 X::x.

返回类型名字参数
Matcher<Decl>valueDeclMatcher<ValueDecl>...

匹配值声明.

示例匹配A,B,CF

  enum X { A, B, C };void F();
返回类型名字参数
Matcher<Decl>varDeclMatcher<VarDecl>...

匹配变量声明.

注意:这不匹配,Clang中的"字段"声明的成员变量.

示例匹配

  int a;
返回类型名字参数
Matcher<λCapture>λCaptureMatcher<λCapture>...

匹配λ抓.

给定

  int main() {int x;auto f = [x](){};auto g = [x = 1](){};}

'λExpr(hasAnyCapture(λCapture()))'匹配器中,'λCapture()'匹配'x''x=1'.

返回类型名字参数
Matcher<NestedNameSpecifierLoc>nestedNameSpecifierLocMatcher<NestedNameSpecifierLoc>...

nestedNameSpecifier相同,但匹配NestedNameSpecifierLoc.

返回类型名字参数
Matcher<NestedNameSpecifier>nestedNameSpecifierMatcher<NestedNameSpecifier>...

匹配嵌套名限定器.

给定

  namespace ns {struct A { static void f(); };void A::f() {}void g() { A::f(); }}ns::A a;

nestedNameSpecifier()匹配"ns::"和两个"A::".

返回类型名字参数
Matcher<OMPClause>ompDefaultClauseMatcher<OMPDefaultClause>...

匹配OpenMPdefault子句.

给定

  #pragma omp parallel default(none)#pragma omp parallel default(shared)#pragma omp parallel default(private)#pragma omp parallel default(firstprivate)#pragma omp parallel

''ompDefaultClause()''匹配''default(none)'',''default(shared)'',``''default(private)''''default(firstprivate)''.

返回类型名字参数
Matcher<QualType>qualTypeMatcher<QualType>...

匹配clangAST中的QualTypes.

返回类型名字参数
Matcher<Stmt>addrLabelExprMatcher<AddrLabelExpr>...

匹配label语句(GNU扩展名)的地址.

给定

  FOO: bar();void *ptr = &&FOO;goto *bar;

addrLabelExpr()匹配'&&FOO'.

返回类型名字参数
Matcher<Stmt>arrayInitIndexExprMatcher<ArrayInitIndexExpr>...

arrayInitIndexExpr由两个子式组成:一个预先计算一次的公共式(源数组),及对每个数组元素运行一次的每元素初化器.在每元素初化器中,可通过ArrayInitIndexExpr当前索引.

给定

  void testStructBinding() {int a[2] = {1, 2};auto [x, y] = a;}

arrayInitIndexExpr()匹配,在"a"数组上的隐式迭代的数组索引,来复制每个元素匿名数组,来支持结构化绑定"[x,y]"元素.

返回类型名字参数
Matcher<Stmt>arrayInitLoopExprMatcher<ArrayInitLoopExpr>...

匹配多个环境中初化数组元素的循环:

1,在有数组成员的类的隐式复制/移动构造器中
2,λ式按值抓数组时
3,分解声明分解数组时

给定

  void testλCapture() {int a[10];auto Lam1 = [a]() {return;};}

在表示按值抓的"a"数组的λ对象中,arrayInitLoopExpr()匹配初化隐式数组字段隐式循环.

返回类型名字参数
Matcher<Stmt>arraySubscriptExprMatcher<ArraySubscriptExpr>...

匹配数组下标式.

给定

  int i = a[1];

arraySubscriptExpr()匹配"a[1]".

返回类型名字参数
Matcher<Stmt>asmStmtMatcher<AsmStmt>...

匹配asm语句.

 int i = 100;__asm("mov al, 2");

asmStmt()匹配'__asm("moval,2")'.

返回类型名字参数
Matcher<Stmt>atomicExprMatcher<AtomicExpr>...

匹配原子内置.

示例匹配__atomic_load_n(ptr,1)

  void foo() { int *ptr; __atomic_load_n(ptr, 1); }
返回类型名字参数
Matcher<Stmt>binaryConditionalOperatorMatcher<BinaryConditionalOperator>...

匹配二元条件符号式(GNU扩展).

示例匹配a:b

  (a  : b) + 42;
返回类型名字参数
Matcher<Stmt>binaryOperatorMatcher<BinaryOperator>...

匹配二元符号式.

示例匹配a||b

  !(a || b)

另见binaryOperation()匹配器以取更通用匹配.

返回类型名字参数
Matcher<Stmt>blockExprMatcher<BlockExpr>...

匹配块引用.

示例:匹配"^{}":

  void f() { ^{}(); }
返回类型名字参数
Matcher<Stmt>breakStmtMatcher<BreakStmt>...

匹配中断语句.

给定

  while (true) { break; }

breakStmt()匹配"break"

返回类型名字参数
Matcher<Stmt>cStyleCastExprMatcher<CStyleCastExpr>...

匹配C风格转换式.

int i = (int) 2.2f;

示例:匹配(int)2.2f

返回类型名字参数
Matcher<Stmt>callExprMatcher<CallExpr>...

匹配调用式.

示例匹配x.y()y()

  X x;x.y();y();
返回类型名字参数
Matcher<Stmt>caseStmtMatcher<CaseStmt>...

匹配switch语句中的case语句.

给定

  switch(a) { case 42: break; default: break; }

caseStmt()匹配'case42:'.

返回类型名字参数
Matcher<Stmt>castExprMatcher<CastExpr>...

匹配ClangAST的转换节点.

示例:castExpr()匹配以下各项:

  (int) 3;const_cast<Expr *>(SubExpr);char c = 0;

但不匹配

  int i = (0);int k = 0;
返回类型名字参数
Matcher<Stmt>characterLiteralMatcher<CharacterLiteral>...

匹配符字面(也匹配wchar_t).

但,不匹配十六进制编码的符(如0x1234,它是IntegerLiteral),
示例匹配'a',L'a'

  char ch = 'a';wchar_t chw = L'a';
返回类型名字参数
Matcher<Stmt>chooseExprMatcher<ChooseExpr>...

匹配GNU__builtin_choose_expr.

返回类型名字参数
Matcher<Stmt>coawaitExprMatcher<CoawaitExpr>...

匹配co_await式.

给定

  co_await 1;

coawaitExpr()匹配'co_await 1'

返回类型名字参数
Matcher<Stmt>compoundLiteralExprMatcher<CompoundLiteralExpr>...

匹配复合(即非标量)字面

示例匹配:{1},(1,2)

  int array[4] = {1};vector int myvec = (vector int)(1, 2);
返回类型名字参数
Matcher<Stmt>compoundStmtMatcher<CompoundStmt>...

匹配复合语句.

示例匹配'for(;;)中的'{}''{{}}'{{}}'.

  for (;;) {{}}
返回类型名字参数
Matcher<Stmt>conditionalOperatorMatcher<ConditionalOperator>...

匹配条件符号式.

示例,匹配a?b:c

  (a ? b : c) + 42
返回类型名字参数
Matcher<Stmt>constantExprMatcher<ConstantExpr>...

匹配常量式包装器.

示例匹配case语句中的常量:
(匹配器=constantExpr())

  switch (a) {case 37: break;}
返回类型名字参数
Matcher<Stmt>continueStmtMatcher<ContinueStmt>...

匹配继续语句.

给定

  while (true) { continue; }

continueStmt()匹配"继续(continue)"

返回类型名字参数
Matcher<Stmt>convertVectorExprMatcher<ConvertVectorExpr>...

匹配内置函数__builtin_convertvector.

返回类型名字参数
Matcher<Stmt>coreturnStmtMatcher<CoreturnStmt>...

匹配co_return语句.

给定

  while (true) { co_return; }

coreturnStmt()匹配'co_return'.

返回类型名字参数
Matcher<Stmt>coroutineBodyStmtMatcher<CoroutineBodyStmt>...

匹配协程体语句.

coroutineBodyStmt()匹配下面协程:

  generator<int> gen() {co_return;}
返回类型名字参数
Matcher<Stmt>coyieldExprMatcher<CoyieldExpr>...

匹配co_yield式.

给定

  co_yield 1;

coyieldExpr()匹配'co_yield1'

返回类型名字参数
Matcher<Stmt>cudaKernelCallExprMatcher<CUDAKernelCallExpr>...

匹配CUDA内核调用式.

示例匹配,

  kernel<<<i,j>>>();
返回类型名字参数
Matcher<Stmt>cxxBindTemporaryExprMatcher<CXXBindTemporaryExpr>...

匹配创建临时的节点.

示例匹配FunctionTakesString(GetStringByValue())
(匹配器=cxxBindTemporaryExpr())

FunctionTakesString(GetStringByValue());FunctionTakesStringByPointer(GetStringPointer());
返回类型名字参数
Matcher<Stmt>cxxBoolLiteralMatcher<CXXBoolLiteralExpr>...

匹配bool字面.

示例匹配true,.

返回类型名字参数
Matcher<Stmt>cxxCatchStmtMatcher<CXXCatchStmt>...

匹配catch语句.

  try {} catch(int i) {}

cxxCatchStmt()匹配'catch(int i)'

返回类型名字参数
Matcher<Stmt>cxxConstCastExprMatcher<CXXConstCastExpr>...

匹配const_cast式.

示例:匹配const_cast<int*>(&r)

  int n = 42;const int &r(n);int* p = const_cast<int*>(&r);
返回类型名字参数
Matcher<Stmt>cxxConstructExprMatcher<CXXConstructExpr>...

匹配构造器调用式(包括隐式调用).

示例在f的参数中,匹配string(ptr,n)ptr,(匹配器=cxxConstructExpr())

  void f(const string &a, const string &b);char *ptr;int n;f(string(ptr, n), ptr);
返回类型名字参数
Matcher<Stmt>cxxDefaultArgExprMatcher<CXXDefaultArgExpr>...

匹配调用点上的默认参数值.

示例匹配,在f(42)调用式中,插入的第二个参数的默认值的CXXDefaultArgExpr占位符.

(匹配器=cxxDefaultArgExpr())

  void f(int x, int y = 0);f(42);
返回类型名字参数
Matcher<Stmt>cxxDeleteExprMatcher<CXX>...

匹配删除式.

给定

  delete X;

cxxDeleteExpr()匹配delete X.

返回类型名字参数
Matcher<Stmt>cxxDependentScopeMemberExprMatcher<CXXDependentScopeMemberExpr>...

匹配无法解析实际引用成员的成员式

因为,给定基式成员名依赖的.
给定

  template <class T> void f() { T t; t.g(); }

cxxDependentScopeMemberExpr()匹配t.g.

返回类型名字参数
Matcher<Stmt>cxxDynamicCastExprMatcher<CXXDynamicCastExpr>...

匹配dynamic_cast式.

例:

  struct B { virtual ~B() {} }; struct D : B {};B b;D* p = dynamic_cast<D*>(&b);

中,cxxDynamicCastExpr()匹配dynamic_cast<D*>(&b);

返回类型名字参数
Matcher<Stmt>cxxFoldExprMatcher<CXXFoldExpr>...

匹配C++17个折叠式.

示例匹配'(0+...+args)':

  template <typename... Args>auto sum(Args... args) {return (0 + ... + args);}
返回类型名字参数
Matcher<Stmt>cxxForRangeStmtMatcher<CXXForRangeStmt>...

匹配基于区间的for语句.

cxxForRangeStmt()匹配'for(auto a:i)'

  int i[] =  {1, 2, 3}; for (auto a : i);for(int j = 0; j < 5; ++j);
返回类型名字参数
Matcher<Stmt>cxxFunctionalCastExprMatcher<CXXFunctionalCastExpr>...

匹配函数转换式

示例:匹配Foo(bar);

  Foo f = bar;Foo g = (Foo) bar;Foo h = Foo(bar);
返回类型名字参数
Matcher<Stmt>cxxMemberCallExprMatcher<CXXMemberCallExpr>...

匹配成员调用式.

示例匹配x.y()

  X x;x.y();
返回类型名字参数
Matcher<Stmt>cxxNewExprMatcher<CXXNewExpr>...

匹配新式.

给定

  new X;

cxxNewExpr()匹配"新 X".

返回类型名字参数
Matcher<Stmt>cxxNoexceptExprMatcher<CXXNoexceptExpr>...

匹配noexcept式.

给定

  bool a() noexcept;bool b() noexcept(true);bool c() noexcept(false);bool d() noexcept(noexcept(a()));bool e = noexcept(b()) || noexcept(c());

cxxNoexceptExpr()匹配'noexcept(a())','noexcept(b())''noexcept(c())'.

不匹配a,b,cd声明中的noexcept限定器.

返回类型名字参数
Matcher<Stmt>cxxNullPtrLiteralExprMatcher<CXXNullPtrLiteralExpr>...

匹配nullptr字面.

返回类型名字参数
Matcher<Stmt>cxxOperatorCallExprMatcher<CXXOperatorCallExpr>...

匹配重载的符号调用.

注意,如果未重载符号,则不会匹配.相反,请使用binaryOperator匹配器.
目前,不匹配new delete等符号.

待办:找出不匹配原因
示例同时匹配符号<<((o<<b),c)符号<<(o,b).

(匹配器=cxxOperatorCallExpr())

  ostream &operator<< (ostream &out, int i) { };ostream &o; int b = 1, c = 1;o << b << c;

另见binaryOperation()匹配器,了解匹配此AST节点更通用二元用法.

返回类型名字参数
Matcher<Stmt>cxxReinterpretCastExprMatcher<CXXReinterpretCastExpr>...

匹配reinterpret_cast式.

has()可匹配源式目标类型,但hasDestinationType()更具体,更可读.

  void* p = reinterpret_cast<char*>(&p);

中,匹配reinterpret_cast<char*>(&p)

返回类型名字参数
Matcher<Stmt>cxxRewrittenBinaryOperatorMatcher<CXXRewrittenBinaryOperator>...

匹配重写的二元符号

示例匹配"<"的用法:

  #include <compare>struct HasSpaceshipMem {int a;constexpr auto operator<=>(const HasSpaceshipMem&) const = default;};void compare() {HasSpaceshipMem hs1, hs2;if (hs1 < hs2)return;}

另见binaryOperation()匹配器以取此AST节点更通用匹配.

返回类型名字参数
Matcher<Stmt>cxxStaticCastExprMatcher<CXXStaticCastExpr>...

匹配C++static_cast式.

另见:hasDestinationType:reinterpretCast
例:在

  long eight(static_cast<long>(8));

中,cxxStaticCastExpr()匹配

  static_cast<long>(8)
返回类型名字参数
Matcher<Stmt>cxxStdInitializerListExprMatcher<CXXStdInitializerListExpr>...

匹配C++初化器列表式.

给定

  std::vector<int> a({ 1, 2, 3 });std::vector<int> b = { 4, 5 };int c[] = { 6, 7 };std::pair<int, int> d = { 8, 9 };

cxxStdInitializerListExpr()匹配"{1,2,3}""{4,5}".

返回类型名字参数
Matcher<Stmt>cxxTemporaryObjectExprMatcher<CXXTemporaryObjectExpr>...

匹配有N!=1个参数的函数转换式

示例:匹配Foo(bar,bar)

  Foo h = Foo(bar, bar);
返回类型名字参数
Matcher<Stmt>cxxThisExprMatcher<CXXThisExpr>...

匹配隐式和显式此式.

示例与"return i"中隐式的this式匹配.
(匹配器=cxxThisExpr())

struct foo {int i;int f() { return i; }
};
返回类型名字参数
Matcher<Stmt>cxxThrowExprMatcher<CXXThrowExpr>...

匹配抛式.

  try { throw 5; } catch(int i) {}

cxxThrowExpr()匹配'throw 5'

返回类型名字参数
Matcher<Stmt>cxxTryStmtMatcher<CXXTryStmt>...

匹配try语句.

  try {} catch(int i) {}

cxxTryStmt()匹配'try{}'.

返回类型名字参数
Matcher<Stmt>cxxUnresolvedConstructExprMatcher<CXXUnresolvedConstructExpr>...

匹配未解析的构造器调用式.

示例匹配freturn语句中的T(t).(匹配器=cxxUnresolvedConstructExpr())

  template <typename T>void f(const T& t) { return T(t); }
返回类型名字参数
Matcher<Stmt>declRefExprMatcher<DeclRefExpr>...

匹配引用声明的式.

  bool x;if (x) {}

示例匹配if(x)中的x

返回类型名字参数
Matcher<Stmt>declStmtMatcher<DeclStmt>...

匹配声明语句.

给定

  int a;

declStmt()匹配'int a'.

返回类型名字参数
Matcher<Stmt>defaultStmtMatcher<DefaultStmt>...

匹配switch语句中的默认语句.

给定

  switch(a) { case 42: break; default: break; }

defaultStmt()匹配'default:'.

返回类型名字参数
Matcher<Stmt>dependentCoawaitExprMatcher<DependentCoawaitExpr>...

匹配promise类型依赖的co_await

返回类型名字参数
Matcher<Stmt>designatedInitExprMatcher<DesignatedInitExpr>...

匹配C99指定的初化器式[C996.7.8].

示例:匹配{[2].y=1.0,[0].x=1.0}

  point ptarray[10] = { [2].y = 1.0, [0].x = 1.0 };
返回类型名字参数
Matcher<Stmt>doStmtMatcher<DoStmt>...

匹配do语句.

给定

  do {} while (true);

doStmt()匹配'do{}while(true)'

返回类型名字参数
Matcher<Stmt>explicitCastExprMatcher<ExplicitCastExpr>...

匹配显式转换式.

匹配用户代码中编写的转换式,无论它是C风格转换,函数式转换或关键字转换.不匹配隐式转化.

注意:选择"explicitCast"名字,是为了匹配Clang,因为Clang使用"转换"来表示隐式转换实际转换式.

另见:hasDestinationType.
示例:匹配所有以下五个转换:

  int((int)(reinterpret_cast<int>(static_cast<int>(const_cast<int>(42)))))

但不匹配:

  long ell = 42;
返回类型名字参数
Matcher<Stmt>exprMatcher<Expr>...

匹配式.

示例匹配x()

  void f() { x(); }
返回类型名字参数
Matcher<Stmt>exprWithCleanupsMatcher<ExprWithCleanups>...

匹配引入要在子式求值尾运行的清理式

  const std::string str = std::string();

示例匹配std::string().

返回类型名字参数
Matcher<Stmt>fixedPointLiteralMatcher<FixedPointLiteral>...

匹配固定点字面

返回类型名字参数
Matcher<Stmt>floatLiteralMatcher<FloatingLiteral>...

匹配所有大小/编码的浮点字面,如

1.0,1.0f,1.0L1e10.不匹配隐式转换,如

  float a = 10;
返回类型名字参数
Matcher<Stmt>forStmtMatcher<ForStmt>...

匹配for语句.

  for (;;) {}int i[] =  {1, 2, 3}; for (auto a : i);

示例匹配'for(;;){}'

返回类型名字参数
Matcher<Stmt>genericSelectionExprMatcher<GenericSelectionExpr>...

匹配C11_Generic式.

返回类型名字参数
Matcher<Stmt>gnuNullExprMatcher<GNUNullExpr>...

匹配GNU__null式.

返回类型名字参数
Matcher<Stmt>gotoStmtMatcher<GotoStmt>...

匹配goto语句.

给定

  goto FOO;FOO: bar();

gotoStmt()匹配'goto FOO'.

返回类型名字参数
Matcher<Stmt>ifStmtMatcher<IfStmt>...

匹配if语句.

  if (x) {}

示例匹配'if(x){}'

返回类型名字参数
Matcher<Stmt>imaginaryLiteralMatcher<ImaginaryLiteral>...

匹配基于整数和浮点数的虚数字面和浮点字面,如:1i,1.0i

返回类型名字参数
Matcher<Stmt>implicitCastExprMatcher<ImplicitCastExpr>...

匹配ClangAST的隐式转换节点.

这匹配包括消除函数调用返回值,及转换类型许多不同的位置.

返回类型名字参数
Matcher<Stmt>implicitValueInitExprMatcher<ImplicitValueInitExpr>...

匹配initlist式的隐式初化器.

给定

  point ptarray[10] = { [2].y = 1.0, [2].x = 2.0, [0].x = 1.0 };

implicitValueInitExpr()匹配"[0].y"(隐式)

返回类型名字参数
Matcher<Stmt>initListExprMatcher<InitListExpr>...

匹配initlist式.

给定

  int a[] = { 1, 2 };struct B { int x, y; };B b = { 5, 6 };

initListExpr(),匹配"{1,2}""{5,6}".

返回类型名字参数
Matcher<Stmt>integerLiteralMatcher<IntegerLiteral>...

匹配所有大小/编码的整数字面,如1,1L,0x11U.

不匹配符编码的整数(如L'a').

返回类型名字参数
Matcher<Stmt>labelStmtMatcher<LabelStmt>...

匹配label语句.

给定

goto FOO;
FOO: bar();

labelStmt()匹配'FOO:'.

返回类型名字参数
Matcher<Stmt>λExprMatcher<λExpr>...

匹配λ式.

  [&](){return 5;}

示例匹配[&](){return 5;}.

返回类型名字参数
Matcher<Stmt>materializeTemporaryExprMatcher<MaterializeTemporaryExpr>...

匹配具体化临时对象的节点.

示例:给定

  struct T {void func();};T f();void g(T);

materializeTemporaryExpr()匹配"f()".

  T u(f());g(f());f().func();

但不匹配

  f();
返回类型名字参数
Matcher<Stmt>memberExprMatcher<MemberExpr>...

匹配成员式.

给定

  class Y {void x() { this->x(); x(); Y y; y.x(); a; this->b; Y::b; }int a; static int b;};

memberExpr()匹配this->x,x,y.x,a,this->b

返回类型名字参数
Matcher<Stmt>nullStmtMatcher<NullStmt>...

匹配null语句.

  foo();;

nullStmt()匹配第二个";".

返回类型名字参数
Matcher<Stmt>ompExecutableDirectiveMatcher<OMPExecutableDirective>...

匹配"#pragma omp"可执行指令.

给定

  #pragma omp parallel#pragma omp parallel default(none)#pragma omp taskyield

''ompExecutableDirective()''匹配''ompparallel'',,''ompparalleldefault(none)''''omptaskyield''.

返回类型名字参数
Matcher<Stmt>opaqueValueExprMatcher<OpaqueValueExpr>...

匹配不透明的值式.用作引用另一个式的帮手,可在如BinaryConditionalOperators中满足.

  (a  : c) + 42;

示例匹配'a'

返回类型名字参数
Matcher<Stmt>parenExprMatcher<ParenExpr>...

匹配式中使用的括号.

  int foo() { return 1; }int a = (foo() + 1);

示例匹配(foo()+1)

返回类型名字参数
Matcher<Stmt>parenListExprMatcher<ParenListExpr>...

匹配parenlist式.

ParenListExprs没有预定义类型,用来后期分析.在最终的AST中,可在模板声明中遇见它们.
给定

  template<typename T> class X {void f() {X x(*this);int a = 0, b = 1; int i = (a, b);}};

parenListExpr()匹配"*this",但不匹配(a,b),因为(a,b)预定义类型,且是ParenExpr,而不是ParenListExpr.

返回类型名字参数
Matcher<Stmt>predefinedExprMatcher<PredefinedExpr>...

匹配预定义的标识式[C996.4.2.2].

  printf("%s", __func__);

示例:匹配__func__

返回类型名字参数
Matcher<Stmt>returnStmtMatcher<ReturnStmt>...

匹配return语句.

给定

  return 1;

returnStmt()匹配'return 1'

返回类型名字参数
Matcher<Stmt>stmtMatcher<Stmt>...

匹配语句.

给定

  { ++a; }

stmt()匹配'{++a;}''++a'复合语句.

返回类型名字参数
Matcher<Stmt>stmtExprMatcher<StmtExpr>...

匹配语句式(GNU扩展).

  int C = ({ int X = 4; X; });

匹配示例:({int X=4;X;})

返回类型名字参数
Matcher<Stmt>stringLiteralMatcher<StringLiteral>...

匹配串字面(也匹配宽串字面).

  char *s = "abcd";wchar_t *ws = L"abcd";

示例匹配"abcd",L"abcd"

返回类型名字参数
Matcher<Stmt>substNonTypeTemplateParmExprMatcher<SubstNonTypeTemplateParmExpr>...

匹配非类型模板参数的替换.

给定

  template <int N>struct A { static const int n = N; };struct B : public A<42> {};

substNonTypeTemplateParmExpr()匹配"static const int n=N;"右侧的"N".

返回类型名字参数
Matcher<Stmt>switchCaseMatcher<SwitchCase>...

匹配switch语句中的casedefault语句.

给定

  switch(a) { case 42: break; default: break; }

switchCase()匹配'case42:''default:'.

返回类型名字参数
Matcher<Stmt>switchStmtMatcher<SwitchStmt>...

匹配switch语句.

给定

  switch(a) { case 42: break; default: break; }

switchStmt()匹配'switch(a)'.

返回类型名字参数
Matcher<Stmt>unaryExprOrTypeTraitExprMatcher<UnaryExprOrTypeTraitExpr>...

匹配sizeof(C99),alignof(C++11)vec_step(OpenCL)

给定

  Foo x = bar;int y = sizeof(x) + alignof(x);

unaryExprOrTypeTraitExpr()匹配sizeof(x)alignof(x).

返回类型名字参数
Matcher<Stmt>unaryOperatorMatcher<UnaryOperator>...

匹配一元符号式.

  !a || b

示例匹配!a.

返回类型名字参数
Matcher<Stmt>unresolvedLookupExprMatcher<UnresolvedLookupExpr>...

匹配解析过程中可查找名字的引用,但不能解析为具体的声明.

给定

  template<typename T>T foo() { T a; return a; }template<typename T>void bar() {foo<T>();}

unresolvedLookupExpr()匹配foo<T>()

返回类型名字参数
Matcher<Stmt>unresolvedMemberExprMatcher<UnresolvedMemberExpr>...

匹配未解析的成员式.

给定

  struct X {template <class T> void f();void g();};template <class T> void h() { X x; x.f<T>(); x.g(); }

unresolvedMemberExpr()匹配x.f<T>.

返回类型名字参数
Matcher<Stmt>userDefinedLiteralMatcher<UserDefinedLiteral>...

匹配用户定义的字面符号调用.

匹配示例:"foo"_suffix

返回类型名字参数
Matcher<Stmt>whileStmtMatcher<WhileStmt>...

匹配while语句.

给定

  while (true) {}

whileStmt()匹配'while(true){}'.

返回类型名字参数
Matcher<TemplateArgumentLoc>templateArgumentLocMatcher<TemplateArgumentLoc>...

匹配模板参数(包含位置信息).

给定

  template <typename T> struct C {};C<int> c;

templateArgumentLoc()匹配C<int>中的"int".

返回类型名字参数
Matcher<TemplateArgument>templateArgumentMatcher<TemplateArgument>...

匹配模板参数.

给定

  template <typename T> struct C {};C<int> c;

模板参数(templateArgument)()匹配C<int>中的"int".

返回类型名字参数
Matcher<TemplateName>templateNameMatcher<TemplateName>...

匹配模板名.

给定

  template <typename T> class X { };X<int> xi;

templateName()匹配X<int>中的"X".

返回类型名字参数
Matcher<TypeLoc>elaboratedTypeLocMatcher<ElaboratedTypeLoc>...

匹配C或C++精心设计的"TypeLoc".

给定

  struct s {};struct s ss;

elaboratedTypeLoc()匹配'ss'变量声明的'TypeLoc'.

返回类型名字参数
Matcher<TypeLoc>pointerTypeLocMatcher<PointerTypeLoc>...

匹配指针"TypeLoc".

给定

  int* x;

pointerTypeLoc()匹配'int*'.

返回类型名字参数
Matcher<TypeLoc>qualifiedTypeLocMatcher<QualifiedTypeLoc>...

匹配clangAST中的"QualifiedTypeLoc".

给定

  const int x = 0;

qualifiedTypeLoc()匹配'const int'.

返回类型名字参数
Matcher<TypeLoc>referenceTypeLocMatcher<ReferenceTypeLoc>...

匹配引用"TypeLoc".

给定

  int x = 3;int& l = x;int&& r = 3;

referenceTypeLoc()匹配'int&''int&&'.

返回类型名字参数
Matcher<TypeLoc>templateSpecializationTypeLocMatcher<TemplateSpecializationTypeLoc>...

匹配模板特化"TypeLoc".

给定

  template <typename T> class C {};C<char> var;

varDecl(hasTypeLoc(templateSpecializationTypeLoc(typeLoc())))匹配'C<char>var'.

返回类型名字参数
Matcher<TypeLoc>typeLocMatcher<TypeLoc>...

匹配clangAST中的TypeLocs.

返回类型名字参数
Matcher<Type>arrayTypeMatcher<ArrayType>...

匹配各种数组.

给定

  int a[] = { 2, 3 };int b[4];void f() { int c[a[0]]; }

arrayType()匹配"int a[]","int b[4]""int c[a[0]]";.

返回类型名字参数
Matcher<Type>atomicTypeMatcher<AtomicType>...

匹配原子类型.

给定

_Atomic(int) i;

atomicType()匹配"_Atomic(int)i".

返回类型名字参数
Matcher<Type>autoTypeMatcher<AutoType>...

匹配表示C++11自动类型的类型节点.

给定:

  auto n = 4;int v[] = { 2, 3 }for (auto i : v) { }

autoType()函数匹配"auto n""auto i".

返回类型名字参数
Matcher<Type>blockPointerTypeMatcher<BlockPointerType>...

匹配块指针类型,即按"void (^)(int)"表示

被指总是要求是FunctionType.

返回类型名字参数
Matcher<Type>builtinTypeMatcher<BuiltinType>...

匹配内置类型.

给定

  struct A {};A a;int b;float c;bool d;

内置类型(builtinType)()匹配"int b","float c""bool d".

返回类型名字参数
Matcher<Type>complexTypeMatcher<ComplexType>...

匹配C99复杂类型.

给定

_Complex float f;

complexType()匹配"_Complex float f".

返回类型名字参数
Matcher<Type>constantArrayTypeMatcher<ConstantArrayType>...

匹配带指定常量大小的C数组.

给定

  void() {int a[2];int b[] = { 2, 3 };int c[b[0]];}

constantArrayType()匹配"int a[2]".

返回类型名字参数
Matcher<Type>decayedTypeMatcher<DecayedType>...

匹配降级类型

  void f(int i[]) {i[1] = 0;}

示例,在f的声明中匹配i[].
(匹配器=valueDecl(hasType(decayedType(hasDecayedType(pointerType())))))
(匹配器=expr(hasType(decayedType(hasDecayedType(pointerType())))))
示例匹配i[1].

返回类型名字参数
Matcher<Type>decltypeTypeMatcher<DecltypeType>...

匹配表示C++11decltype(<expr>)类型的类型节点.

给定:

  short i = 1;int j = 42;decltype(i + j) result = i + j;

decltypeType()匹配"decltype(i+j)".

返回类型名字参数
Matcher<Type>deducedTemplateSpecializationTypeMatcher<DeducedTemplateSpecializationType>...

匹配C++17推导的模板特化类型,如推导类模板类型.

给定

  template <typename T>class C { public: C(T); };C c(123);

deducedTemplateSpecializationType()匹配,在c变量中声明的类型.

返回类型名字参数
Matcher<Type>dependentSizedArrayTypeMatcher<DependentSizedArrayType>...

匹配大小与值相关的式的C++数组.

给定

  template<typename T, int Size>class array {T data[Size];};

dependentSizedArrayType()匹配"Tdata[Size]".

返回类型名字参数
Matcher<Type>dependentSizedExtVectorTypeMatcher<DependentSizedExtVectorType>...

匹配类型或大小相关的C++扩展向量类型

给定

  template<typename T, int Size>class vector {typedef T __attribute__((ext_vector_type(Size))) type;};

dependentSizedExtVectorType(),匹配"T __attribute__((ext_vector_type(Size))))".

返回类型名字参数
Matcher<Type>elaboratedTypeMatcher<ElaboratedType>...

匹配用详细类型关键字或全名.

给定

  namespace N {namespace M {class D {};}}class C {};class C c;N::M::D d;

elaboratedType()匹配cd变量声明类型.

返回类型名字参数
Matcher<Type>enumTypeMatcher<EnumType>...

匹配枚举类型.

给定

  enum C { Green };enum class S { Red };C c;S s;

enumType()匹配cs.

返回类型名字参数
Matcher<Type>functionProtoTypeMatcher<FunctionProtoType>...

匹配FunctionProtoType节点.

给定

  int (*f)(int);void g();

functionProtoType()匹配"int(*f)(int)"C++模式下的"g"类型.
在C模式下,因为不包含原型,不匹配"g".

返回类型名字参数
Matcher<Type>functionTypeMatcher<FunctionType>...

匹配FunctionType节点.

给定

  int (*f)(int);void g();

函数类型(functionType)()匹配"int(*f)(int)""g"的类型.

返回类型名字参数
Matcher<Type>incompleteArrayTypeMatcher<IncompleteArrayType>...

匹配未指定大小的C数组.

给定

  int a[] = { 2, 3 };int b[42];void f(int c[]) { int d[a[0]]; };

incompleteArrayType() 匹配"int a[]""int c[]".

返回类型名字参数
Matcher<Type>injectedClassNameTypeMatcher<InjectedClassNameType>...

匹配注入的类名类型.

  template <typename T> struct S {void f(S s);void g(S<T> s);};

示例匹配S s,但不匹配S<T>s.
(匹配器=parmVarDecl(hasType(injectedClassNameType()))))

返回类型名字参数
Matcher<Type>lValueReferenceTypeMatcher<LValueReferenceType>...

匹配左值引用类型.

给定:

  int *a;int &b = *a;int &&c = 1;auto &d = b;auto &&e = c;auto &&f = 2;int g = 5;

lValueReferenceType()匹配b,de的类型.因为按引用折叠规则推导为int&,因此匹配e类型.

返回类型名字参数
Matcher<Type>macroQualifiedTypeMatcher<MacroQualifiedType>...

通过宏应用限定符时,匹配限定符.

给定

  #define CDECL __attribute__((cdecl))typedef void (CDECL *X)();typedef void (__attribute__((cdecl)) *Y)();

macroQualifiedType()匹配Xtypedef声明的类型,但不匹配Y的.

返回类型名字参数
Matcher<Type>memberPointerTypeMatcher<MemberPointerType>...

匹配成员指针类型.

给定

  struct A { int i; }A::* ptr = A::i;

memberPointerType(),匹配"A::*ptr"

返回类型名字参数
Matcher<Type>parenTypeMatcher<ParenType>...

匹配ParenType节点.

给定

  int (*ptr_to_array)[4];int *array_of_ptrs[4];

varDecl(hasType(pointsTo(parenType())))匹配ptr_to_array但不匹配array_of_ptrs.

返回类型名字参数
Matcher<Type>pointerTypeMatcher<PointerType>...

匹配指针类型,但不匹配Objective-C对象指针类型.

给定

  int *a;int &b = *a;int c = 5;@interface Foo@endFoo *f;

pointerType()匹配"int*a",但不匹配"Foo*f".

返回类型名字参数
Matcher<Type>rValueReferenceTypeMatcher<RValueReferenceType>...

匹配右值引用类型.

给定:

  int *a;int &b = *a;int &&c = 1;auto &d = b;auto &&e = c;auto &&f = 2;int g = 5;

rValueReferenceType()c和f类型匹配.e按引用折叠规则推导为int&,因此不匹配.

返回类型名字参数
Matcher<Type>recordTypeMatcher<RecordType>...

匹配记录类型(如结构,类).

给定

  class C {};struct S {};C c;S s;

recordType()cs变量声明类型匹配.

返回类型名字参数
Matcher<Type>referenceTypeMatcher<ReferenceType>...

匹配左值和右值引用类型.

给定

  int *a;int &b = *a;int &&c = 1;auto &d = b;auto &&e = c;auto &&f = 2;int g = 5;

referenceType()匹配b,c,d,ef类型.

返回类型名字参数
Matcher<Type>substTemplateTypeParmTypeMatcher<SubstTemplateTypeParmType>...

匹配表示替换模板类型参数类型结果的类型.

给定

  template <typename T>void F(T t) {int i = 1 + t;}

substTemplateTypeParmType()"t"的类型匹配,但与"1"不匹配

返回类型名字参数
Matcher<Type>tagTypeMatcher<TagType>...

匹配标记类型(记录和枚举类型).

给定

  enum E {};class C {};E e;C c;

tagType()ec变量声明类型匹配.

返回类型名字参数
Matcher<Type>templateSpecializationTypeMatcher<TemplateSpecializationType>...

匹配模板特化类型.

给定

  template <typename T>class C { };template class C<int>;  //`AB`C<char> var;            //

templateSpecializationType()匹配A中的显式实例化B中变量声明的类型.

返回类型名字参数
Matcher<Type>templateTypeParmTypeMatcher<TemplateTypeParmType>...

匹配模板类型参数类型.

  template <typename T> void f(int i);

示例匹配T,但不匹配int.(匹配器=templateTypeParmType())

返回类型名字参数
Matcher<Type>typeMatcher<Type>...

匹配clangAST中的类型.

返回类型名字参数
Matcher<Type>typedefTypeMatcher<TypedefType>...

匹配typedef类型.

给定

  typedef int X;

typedefType()型匹配"typedef int X".

返回类型名字参数
Matcher<Type>unaryTransformTypeMatcher<UnaryTransformType>...

匹配表示一元类型转换的类型节点.

给定:

  typedef __underlying_type(T) type;

unaryTransformType()匹配"__underlying_type(T)".

返回类型名字参数
Matcher<Type>usingTypeMatcher<UsingType>...

匹配通过using声明指定的类型.

给定

  namespace a { struct S {}; }using a::S;S s;

usingType()匹配s变量声明的类型.

返回类型名字参数
Matcher<Type>variableArrayTypeMatcher<VariableArrayType>...

匹配指定大小不为整数常量式的C数组.

给定

  void f() {int a[] = { 2, 3 }int b[42];int c[a[0]];}

variableArrayType()匹配"int c[a[0]]".

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一起学习ETCD系列——运维操作之etcdctl使用

文章目录 概要一、命令二、实操2.1、基本操作2.2、watch2.3、租约2.4、分布式锁2.5、角色2.6、用户2.7、认证2.8、集群 概要 本文主要用来总结ETCD客户端ctcdctl的命令操作&#xff0c;在运维过程中可能常常用到的。 一、命令 etcd工具 etcdctl官方命令示例 [roottest etcd…

【牛客刷题】笔试选择题整理(day1-day2)

每天都在进步呀 文章目录 1. 小数求模运算2. 进程的分区&#xff0c;这里说的不是JVM的分区。进程中&#xff0c;方法存放在方法区。3. 访问权限控制4. 继承与多态5. 与equals()6. 类加载顺序7. super()与this()7.1 super7.1.1 super调用父类构造方法7.1.2 super调用父类属性和…

私人漫画图书馆:分类管理,一目了然 | 开源日报 No.157

tachiyomiorg/tachiyomi Stars: 26.9k License: Apache-2.0 tachiyomi 是一个免费开源的安卓漫画阅读器。 该项目的主要功能、关键特性、核心优势包括&#xff1a; 从多种来源在线阅读本地阅读已下载内容可配置的阅读器&#xff0c;具有多个查看器、翻页方向和其他设置支持追…

大数据处理系统的架构

大数据处理系统的架构介绍 Lamdba架构 Lambda 架构是一种用于处理大规模数据的设计模式,旨在结合批处理和实时处理,以应对对大量数据进行高效处理的需求。Lambda 架构的核心思想是将数据处理流程分为批处理层和实时处理层,并将它们整合在一起,以获得高可扩展性和灵活性。…

什么叫高斯分布?

高斯分布&#xff0c;也称为正态分布&#xff0c;是统计学中最常见的概率分布之一。它具有钟形曲线的形态&#xff0c;对称分布在均值周围&#xff0c;且由均值和标准差两个参数完全描述。 高斯分布的概率密度函数&#xff08;Probability Density Function, PDF&#xff09;可…

mysql数据库的备份和恢复

登录&#xff1a; mysql -uroot -proot -h127.0.0.1 退出&#xff1a; mysql > exit; mysql > quit; mysql > \q;备份所有数据库 mysqldump命令备份所有数据库的语法如下&#xff1a; mysqldump -u username -p -all-databases > BackupName.sql 示例&#xf…

SpringBoot 有什么优点?

Spring Boot 是一个用于简化和加速 Spring 框架应用程序开发的项目。它构建在 Spring 框架之上&#xff0c;提供了一种快速开发、简化配置和集成的方式。以下是 Spring Boot 的一些优点&#xff1a; 1、简化配置&#xff1a; Spring Boot 使用约定大于配置的理念&#xff0c;通…

[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

DevOps系列文章之 GitLabCI汇总

GitlabCI环境搭建 前提 先安装 docker Docker容器化安装 docker pull gitlab/gitlab-ee:12.4.0-ee.0 创建挂载目录 mkdir -p /srv/gitlab mkdir -p /srv/gitlab/config # 映射到 Glitlab 容器中的配置目录 mkdir -p /srv/gitlab/logs # 映射到 Glitlab 容器中的日志目录 m…

mac裁剪图片

今天第一次用mac裁剪图片&#xff0c;记录一下过程&#xff0c;差点我还以为我要下载photoshop了&#xff0c; 首先准备好图片 裁剪的目的是把图片的标题给去掉&#xff0c;但是不能降低分辨率&#xff0c;否则直接截图就可以了 解决办法 打开原始图片(不要使用预览&#xf…

Python环境下基于机器学习的NASA涡轮风扇发动机剩余使用寿命RUL预测

本例所用的数据集为C-MAPSS数据集&#xff0c;C-MAPSS数据集是美国NASA发布的涡轮风扇发动机数据集&#xff0c;其中包含不同工作条件和故障模式下涡轮风扇发动机多源性能的退化数据&#xff0c;共有 4 个子数据集&#xff0c;每个子集又可分为训练集、 测试集和RUL标签。其中&…

【开源】基于JAVA语言的二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

Java入门——数据类型、自动类型转换、强制类型转换

目录 数据类型 基本数据类型 自动类型转换 表达式的自动类型转换 强制类型转换 计算机中表示数据的最小单元 计算机中表示数据的最小单元&#xff1a;一个字节&#xff08;byte&#xff0c;简称B&#xff0c;是使用8个二进制位组成的&#xff09;字节中的每个二进制位就称…

Python进阶第一篇(Python的面向对象)

文章目录 一、初识对象1.案例代码2.读出结果 二、类的成员方法三、类和对象四、构造方法六、其他内置方法1.魔术方法案例代码2.读出结果 七、封装1.封装案例代码2.读出结果 八、继承1.复写与调用2.类型注解 九、多态 在这个探索和学习的旅程中&#xff0c;我们将深入理解一些编…

基于DataKit迁移MySQL到openGauss

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

网络防御保护——防火墙子接口配置

一.实验拓扑图 二.实验要求 1.生产区在工作时间内可以访问服务区&#xff0c;仅可以访问http服务器。 2.办公区全天可以访问服务区&#xff0c;其中&#xff0c;10.0.2.20可以访问FTP服务器和HTTP服务器&#xff0c;10.0.2.10仅可以ping通10.0.3.10。 3.办公区在访问服务区时采…

【软件测试】学习笔记-Nginx 在系统架构中的作用

本篇文章你探讨 Nginx 在应用架构中的作用&#xff0c;并从性能测试角度看如何利用 Nginx 数据统计用户访问量。 Nginx 重要的两个概念 代理 首先要来解释一下什么是代理&#xff0c;正向代理和反向代理是什么意思&#xff1f;各自作用是什么&#xff1f;不少同学经常听到这…

WPF中的工具栏ToolBar控件

ToolBar&#xff08;工具栏&#xff09;是WPF中的一个控件&#xff0c;用于在界面上创建一个水平或垂直的工具栏&#xff0c;以便放置和组织多个按钮或其他控件。ToolBar通常用于提供快速访问常用功能的方式&#xff0c;类似于传统桌面应用程序的工具栏。 下面是ToolBar控件的…

C语言——操作符详解2

目录 0.过渡0.1 不创建临时变量&#xff0c;交换两数0.2 求整数转成二进制后1的总数 1.单目表达式2. 逗号表达式3. 下标访问[ ]、函数调用( )3.1 下标访问[ ]3.2 函数调用( ) 4. 结构体成员访问操作符4.1 结构体4.1.1 结构体的申明4.1.2 结构体变量的定义和初始化 4.2 结构体成…

【Java 设计模式】行为型之解释器模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;用于定义语言的文法规则&#xff0c;并提供解释器来解释符合规则的语句。解释器模式通过定义语言的文法表示&#xff0c;使得可以解释执行…