// Copyright (c) Alexandre Mutel. All rights reserved.
// Licensed under the BSD-Clause 2 license.
// See license.txt file in the project root for full license information.
using System;
using System.Collections.Generic;
namespace CppAst
{
///
/// A type not fully/correctly exposed by the C++ parser.
///
///
/// Template parameter type instance are actually exposed with this type.
///
public sealed class CppUnexposedType : CppType, ICppTemplateOwner
{
///
/// Creates an instance of this type.
///
/// Fullname of the unexposed type
public CppUnexposedType(string name) : base(CppTypeKind.Unexposed)
{
Name = name ?? throw new ArgumentNullException(nameof(name));
TemplateParameters = new List();
}
///
/// Full name of the unexposed type
///
public string Name { get; }
///
public override int SizeOf { get; set; }
///
public List TemplateParameters { get; }
///
public override CppType GetCanonicalType() => this;
///
public override string ToString() => Name;
}
}