//===- ComparisonCategories.cpp - Three Way Comparison Data -----*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file defines the Comparison Category enum and data types, which
// store the types and expressions needed to support operator<=>
//
//===----------------------------------------------------------------------===//
using namespace clang;
Optional<ComparisonCategoryType>
bool
/// Attempt to determine the integer value used to represent the comparison
/// category result by evaluating the initializer for the specified VarDecl as
/// a constant expression and retrieving the value of the class's first
/// (and only) field.
///
/// Note: The STL types are expected to have the form:
/// struct X { T value; };
/// where T is an integral or enumeration type.
llvm::APSInt
ComparisonCategoryInfo::ValueInfo *
static const NamespaceDecl *
static CXXRecordDecl *
const ComparisonCategoryInfo *
const ComparisonCategoryInfo *
const ComparisonCategoryInfo &
QualType
StringRef
StringRef
std::vector<ComparisonCategoryResult>