これは、Clang の問題ではなく、C++ の問題のようです...
OCLint (静的コード アナライザー) ルールを作成するには、C++ を使用する必要があります。
タイプ「SourceLocation」を持つ Clang ライブラリの 2 つのオブジェクトを比較したいと考えています。
このタイプは、コード内のオブジェクト (ステートメント、宣言など) の位置 (基本的に行と列) に関する情報を提供します。
基本的に、ステートメントAがステートメントBの前または後に開始および終了するかどうかを知りたい.
擬似コードでは、次のブール値を取得したいことを意味します。
( stmt_A->getLocBegin() < stmt_B->getLocBegin() )、たとえば。もちろん、「<」演算子が「SourceLocation」型の 2 つのオブジェクト間で定義されていないため、これはコンパイルされません。
Clang のドキュメントでメソッドを見つけましたが、私は C++ を頻繁に使用するわけではないので、その使用方法がわかりません。このメソッドは次のとおりです。
http://clang.llvm.org/doxygen/classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html
clang::BeforeThanCompare<SourceLocation>::BeforeThanCompare (SourceManager &SM)
bool clang::BeforeThanCompare< SourceLocation >::operator()(SourceLocation LHS, SourceLocation RHS) const [inline]
SourceManager の使用方法、または上記のブール値を取得する方法がわかりません。