// 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; } }