Fixed handling of template function specialization arguments

This commit is contained in:
Bartek Kryza
2023-04-02 19:40:05 +02:00
parent a55845e29e
commit 75eaef3662
9 changed files with 276 additions and 28 deletions

View File

@@ -176,6 +176,10 @@ public:
void set_unexposed(bool unexposed) { is_unexposed_ = unexposed; }
void set_function_template(bool ft) { is_function_template_ = ft; }
bool is_function_template() const { return is_function_template_; }
private:
template_parameter() = default;
@@ -202,11 +206,14 @@ private:
/// Whether the template parameter is variadic
bool is_variadic_{false};
bool is_function_template_{false};
/// Stores optional fully qualified name of constraint for this template
/// parameter
std::optional<std::string> concept_constraint_;
// Nested template parameters
// If this is a function template, the first element is the return type
std::vector<template_parameter> template_params_;
std::optional<int64_t> id_;