Add cpp_dependent_type
This commit is contained in:
parent
853a132425
commit
a9bc9a1c9b
2 changed files with 67 additions and 0 deletions
|
|
@ -8,6 +8,7 @@
|
|||
#include <cppast/cpp_entity.hpp>
|
||||
#include <cppast/cpp_entity_kind.hpp>
|
||||
#include <cppast/cpp_function_type.hpp>
|
||||
#include <cppast/cpp_template.hpp>
|
||||
|
||||
using namespace cppast;
|
||||
|
||||
|
|
@ -16,6 +17,20 @@ bool detail::cpp_type_ref_predicate::operator()(const cpp_entity& e)
|
|||
return is_type(e.kind());
|
||||
}
|
||||
|
||||
std::unique_ptr<cpp_dependent_type> cpp_dependent_type::build(
|
||||
std::string name, std::unique_ptr<cpp_template_parameter_type> dependee)
|
||||
{
|
||||
return std::unique_ptr<cpp_dependent_type>(
|
||||
new cpp_dependent_type(std::move(name), std::move(dependee)));
|
||||
}
|
||||
|
||||
std::unique_ptr<cpp_dependent_type> cpp_dependent_type::build(
|
||||
std::string name, std::unique_ptr<cpp_template_instantiation_type> dependee)
|
||||
{
|
||||
return std::unique_ptr<cpp_dependent_type>(
|
||||
new cpp_dependent_type(std::move(name), std::move(dependee)));
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
bool can_compose(const cpp_type& type)
|
||||
|
|
@ -99,6 +114,12 @@ bool cppast::is_valid(const cpp_type& type) noexcept
|
|||
return is_valid(obj.object_type());
|
||||
}
|
||||
|
||||
case cpp_type_kind::dependent:
|
||||
{
|
||||
auto& dep = static_cast<const cpp_dependent_type&>(type);
|
||||
return is_valid(dep.dependee());
|
||||
}
|
||||
|
||||
case cpp_type_kind::builtin:
|
||||
case cpp_type_kind::user_defined:
|
||||
case cpp_type_kind::template_parameter:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue