Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't use skypjack/entt with CppSharp #1872

Open
oistikbal opened this issue Sep 18, 2024 · 18 comments
Open

Can't use skypjack/entt with CppSharp #1872

oistikbal opened this issue Sep 18, 2024 · 18 comments

Comments

@oistikbal
Copy link

oistikbal commented Sep 18, 2024

I use skypjack/entt and try to import my api to c# but i get errors.

OS: Windows 11

Used headers

#include "..\Components\common.h" -> "entt\src\entt\entt.hpp"
#include "api.h"

namespace furnace::api::entity
{
FURNACE_API uint32_t create();
};

\\
#pragma once
#include "....\ThirdParty\entt\single_include\entt\entt.hpp"

even single an .h file with this cause errors.

Used settings
        var options = driver.Options;
        driver.ParserOptions.Setup(TargetPlatform.Windows);
        driver.ParserOptions.MicrosoftMode = true;
        driver.ParserOptions.LanguageVersion = CppSharp.Parser.LanguageVersion.CPP20;
        driver.ParserOptions.EnableRTTI = true;
        driver.Setup();

Target: MSVC

Stack trace or incompilable generated code

2>Build Engine API
2>---Generating API---
2>API Path: D:\Workspace\Cpp\Furnace\FurnaceEngine\Api
2>Output Path: D:\Workspace\Cpp\Furnace\FurnaceEditor\Api
2>Bin Path: D:\Workspace\Cpp\Furnace\bin\Debug
2>--------------------
2>CPP20
2>Parsing libraries...
2>Parsing code...
2>Error parsing 'entity_api.h'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(88,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(95,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(363,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(381,29): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(381,41): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(390,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(390,22): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(415,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(424,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(424,22): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(424,34): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(437,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(437,22): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(450,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(463,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(472,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(472,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(494,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(494,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(504,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(526,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(526,22): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(555,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(563,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(563,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(572,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(584,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(584,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(608,50): error : no template named 'is_invocable' in namespace 'std'; did you mean '_Is_invocable_r'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(617,56): error : no template named 'is_invocable' in namespace 'std'; did you mean '_Is_invocable_r'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(639,62): error : no template named 'is_invocable_r' in namespace 'std'; did you mean '_Is_invocable_r'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(913,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/type_traits.hpp(916,29): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/compressed_pair.hpp(193,63): error : no template named 'is_nothrow_swappable_v' in namespace 'std'; did you mean '_Is_nothrow_swappable'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/compressed_pair.hpp(193,98): error : expected '(' for function-style cast or type construction
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/compressed_pair.hpp(193,106): error : no template named 'is_nothrow_swappable_v' in namespace 'std'; did you mean '_Is_nothrow_swappable'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/compressed_pair.hpp(193,141): error : expected '(' for function-style cast or type construction
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/compressed_pair.hpp(233,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/../core/memory.hpp(159,18): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/../core/memory.hpp(160,18): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/../core/memory.hpp(220,17): error : no template named 'make_from_tuple' in namespace 'std'; did you mean 'make_tuple'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/../core/memory.hpp(239,17): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/utility.hpp(63,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/utility.hpp(85,77): error : no template named 'is_nothrow_invocable_v' in namespace 'std'; did you mean 'is_nothrow_assignable_v'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/utility.hpp(85,77): error : too many template arguments for variable template 'is_nothrow_assignable_v'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/utility.hpp(91,71): error : no template named 'is_nothrow_invocable_v' in namespace 'std'; did you mean 'is_nothrow_assignable_v'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/utility.hpp(91,71): error : too many template arguments for variable template 'is_nothrow_assignable_v'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/hashed_string.hpp(72,59): error : no template named 'basic_string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/hashed_string.hpp(200,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/hashed_string.hpp(210,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(27,10): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(36,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(37,30): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(43,20): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(48,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(122,41): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(127,43): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(140,30): error : no template named 'in_place_type_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(166,34): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(173,10): error : no type named 'string_view' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(54,29): error : no type named 'byte' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(174,29): error : no template named 'in_place_type_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(165,26): error : no member named 'in_place_type' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(165,44): error : expected '(' for function-style cast or type construction
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(165,45): error : expected expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(75,77): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(81,83): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(76,21): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(82,21): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(91,1): error : use of class template 'forward_apply' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(91,20): error : expected ';' at end of declaration
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/core/tuple.hpp(91,21): error : cannot use arrow operator on a type
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/group.hpp(511,25): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/group.hpp(910,25): error : no member named 'apply' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(114,32): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(114,67): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(124,28): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(124,63): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(129,28): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(129,63): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(1091,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/view.hpp(1099,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/helper.hpp(107,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/helper.hpp(210,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/helper.hpp(223,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/helper.hpp(236,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/helper.hpp(251,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/fwd.hpp(31,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/fwd.hpp(41,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(67,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(76,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(86,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(113,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(132,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(162,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(186,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(71,60): error : no member named 'is_invocable_r_v' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(71,77): error : 'Ret' does not refer to a value
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(71,82): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(71,101): error : expected ';' at end of declaration
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(71,101): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(81,60): error : no member named 'is_invocable_r_v' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(81,77): error : 'Ret' does not refer to a value
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(81,82): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(81,101): error : expected ';' at end of declaration
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(81,101): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(91,60): error : no member named 'is_invocable_r_v' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(91,77): error : 'Ret' does not refer to a value
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(91,82): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(91,101): error : expected ';' at end of declaration
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(91,101): error : expected unqualified-id
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(302,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(303,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(310,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(311,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/delegate.hpp(319,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(137,42): error : no template named 'is_nothrow_swappable_v' in namespace 'std'; did you mean '_Is_nothrow_swappable'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(137,80): error : expected '(' for function-style cast or type construction
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(366,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(371,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(410,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(430,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/sigh.hpp(467,1): error : a type specifier is required for all declarations
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/mixin.hpp(187,16): error : use of class template 'sink' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/mixin.hpp(202,16): error : use of class template 'sink' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/mixin.hpp(217,16): error : use of class template 'sink' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/observer.hpp(45,56): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/observer.hpp(80,56): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/observer.hpp(101,56): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/organizer.hpp(302,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/organizer.hpp(334,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/organizer.hpp(121,38): error : use of class template 'as_view' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/organizer.hpp(121,45): error : expected ')'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1065,34): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1075,34): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1088,27): error : use of class template 'get_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1088,60): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1112,37): error : use of class template 'get_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/registry.hpp(1112,70): error : use of class template 'exclude_t' requires template arguments
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(60,24): error : cannot initialize a value of type 'meta_traits' with an rvalue of type 'std::underlying_type_tinternal::meta_traits' (aka 'unsigned int')
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(163,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(179,10): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(181,85): error : right hand operand to ->* has non-pointer-to-member type 'int'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(184,40): error : use of undeclared identifier 'value_type'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(184,75): error : right hand operand to ->* has non-pointer-to-member type 'int'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/node.hpp(195,24): error : unknown type name 'value_type'; did you mean 'std::false_type'?
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(245,28): error : no template named 'in_place_type_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(256,50): error : no template named 'in_place_type_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1423,28): error : no matching function for call to 'look_for'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1445,28): error : no matching function for call to 'look_for'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1178,121): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1178,217): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1505,29): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1506,137): error : use of undeclared identifier 'curr'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1506,158): error : use of undeclared identifier 'curr'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1506,164): error : use of undeclared identifier 'curr'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/meta.hpp(1576,28): error : no matching function for call to 'look_for'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/container.hpp(316,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(225,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(274,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(311,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(417,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(431,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(519,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/utility.hpp(532,25): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(34,24): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(40,40): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(83,27): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(93,27): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(112,24): error : no matching function for call to 'find_member'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(169,31): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(237,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(275,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(323,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(344,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(403,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(403,27): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(454,31): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(473,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(239,73): error : no member named 'invoke_result_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(239,108): error : expected '(' for function-style cast or type construction
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(239,119): error : expected ';' after alias declaration
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/meta/factory.hpp(241,70): error : use of undeclared identifier 'conv_type'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/poly.hpp(65,14): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/poly.hpp(78,29): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/poly.hpp(91,29): error : 'auto' not allowed in template parameter until C++17
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/poly.hpp(211,30): error : no template named 'in_place_type_t' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/entity.hpp(135,31): error : cannot initialize a value of type 'value_type' (aka 'entt::entity') with an rvalue of type 'entity_type' (aka 'unsigned int')
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/sparse_set.hpp(165,27): error : constexpr variable 'max_size' must be initialized by a constant expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(253,40): error : no member named 'in_place_type' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(253,54): error : 'Type' does not refer to a value
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/signal/../core/type_info.hpp(253,59): error : expected expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/sparse_set.hpp(196,35): error : constexpr variable 'init' must be initialized by a constant expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/entity.hpp(153,31): error : cannot initialize a value of type 'value_type' (aka 'entt::entity') with an rvalue of type 'entity_type' (aka 'unsigned int')
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(509,39): error : no member named 'in_place_type' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(509,53): error : 'Type' does not refer to a value
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(509,60): error : expected expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/poly/../core/any.hpp(509,61): error : expected expression
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/sparse_set.hpp(210,22): error : no member named 'destroy' in namespace 'std'
2>D:\Workspace\Cpp\Furnace\FurnaceEngine\Api/..\Components/....\ThirdParty\entt\src\entt/entity/sparse_set.hpp(689,24): error : constexpr variable 'mask' must be initialized by a constant expression

@tritao
Copy link
Collaborator

tritao commented Sep 18, 2024

Can you enable verbose mode in options and paste the log?

@oistikbal
Copy link
Author

oistikbal commented Sep 18, 2024

ignoring nonexistent directory "lib\clang\18\include"
2>ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include"
2>ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\atlmfc\include"
2>ignoring duplicate directory "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\winrt"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\cppwinrt"
2>ignoring duplicate directory "C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um"
2>#include "..." search starts here:
2>#include <...> search starts here:
2> D:\Workspace\Cpp\Furnace\FurnaceEngine\Api
2> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include
2> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\atlmfc\include
2> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include
2> C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt
2> C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um
2> C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared
2> C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\winrt
2> C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\cppwinrt
2> C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um
2>End of search list.
2>Error parsing 'entity_api.h'`
Same very long error.
CppSharp has encountered an error while parsing code.
2>Compiler argument: -xc++
2>Compiler argument: -std=gnu++14
2>Compiler argument: -fno-rtti
2>Compiler argument: -fms-extensions
2>Compiler argument: -fms-compatibility
2>Compiler argument: -fdelayed-template-parsing
2>Target triple: x86_64-pc-windows-msvc

@tritao
Copy link
Collaborator

tritao commented Sep 18, 2024

Looks like its passing GNU++14 instead of C++20, that seems to be the main issue, why I am not sure.

@tritao
Copy link
Collaborator

tritao commented Sep 18, 2024

@tritao
Copy link
Collaborator

tritao commented Sep 18, 2024

Can you try changing the order of your options setup?

@oistikbal
Copy link
Author

oistikbal commented Sep 18, 2024

`            var options = driver.Options;
            driver.ParserOptions.MicrosoftMode = true;
            driver.ParserOptions.LanguageVersion = CppSharp.Parser.LanguageVersion.CPP20;
            driver.ParserOptions.Verbose = true;


            options.GeneratorKind = GeneratorKind.CSharp;
            options.OutputDir = _outputPath;

            var module = options.AddModule("FurnaceEngine");
            module.OutputNamespace = string.Empty;
            module.IncludeDirs.Add(_apiPath);
            module.Headers.Add("entity_api.h");`

`End of search list.
2>Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
2>Repeat 2 times:
2>--------------------------------
2>   at CppSharp.Parser.ClangParser+__Internal.ParseHeader(IntPtr)
2>--------------------------------
2>   at CppSharp.Parser.ClangParser.ParseHeader(CppSharp.Parser.CppParserOptions)
2>   at CppSharp.ClangParser.ParseSourceFiles(System.Collections.Generic.IEnumerable`1<System.String>, CppSharp.Parser.ParserOptions)
2>   at CppSharp.Driver.ParseCode()
2>   at CppSharp.ConsoleDriver.Run(CppSharp.ILibrary)
2>   at FurnaceAPIGenerator.Program.Main(System.String[])` 

What is my setup should be? Now getting an another error.

@tritao
Copy link
Collaborator

tritao commented Sep 18, 2024

Ok so now it looks like there is an issue with the parser.

You can try running CppSharp in debug mode, via -debug flag to build.sh: https://github.com/mono/CppSharp/blob/main/build/build.sh#L199

That should give you a stack trace with LLVM and Clang symbols: https://github.com/mono/CppSharp/blob/main/build/build.sh#L199

After which I may be able to identify the issue and see if its possible to fix easily.

@oistikbal
Copy link
Author

image

@oistikbal
Copy link
Author

  #pragma once
  
  class Foo
  {
  public:
  
	  int a;
	  float b;
  };
int FooAdd(Foo* foo);
2>Compiler argument: -xc++
2>Compiler argument: -std=c++20
2>Compiler argument: -fno-rtti
2>Compiler argument: -fms-extensions
2>Compiler argument: -fms-compatibility
2>Compiler argument: -fdelayed-template-parsing`

This compiles fine, it is c++20, not gnu anymore. but still can't include entt. Can't compile at the latest version for debug.

@tritao
Copy link
Collaborator

tritao commented Sep 19, 2024

image

I think if you press on the middle button on that dialog, it should give you a complete stack trace.

@oistikbal
Copy link
Author

image

I think if you press on the middle button on that dialog, it should give you a complete stack trace.

C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(5932,5): error MSB3073: ""C:\Program Files\dotnet\dotnet.exe" "D:\Workspace\C#\Cp pSharp\bin\Debug\CSharp.Gen.dll"" komutundan -2147483645 koduyla çıkıldı. [D:\Workspace\C#\CppSharp\tests\dotnet\CSharp\CSharp.Gen.csproj]

@tritao
Copy link
Collaborator

tritao commented Sep 19, 2024

It should look something like this:

image

@tritao
Copy link
Collaborator

tritao commented Sep 19, 2024

You should run it under VS to get an accurate call stack.

@oistikbal
Copy link
Author

i get that error from build.sh script not from my app. i can't build from .sln either.

`
Build started at 13:56...
1>------ Build started: Project: CppSharp.Runtime, Configuration: Debug x64 ------
2>------ Build started: Project: CppSharp.AST, Configuration: Debug x64 ------
3>------ Build started: Project: NamespacesDerived.Native, Configuration: Debug x64 ------
2>CppSharp.AST -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.AST.dll
1>CppSharp.Runtime -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Runtime.dll
4>------ Build started: Project: CppSharp.Parser.CSharp, Configuration: Debug x64 ------
5>------ Build started: Project: CppSharp.Parser, Configuration: Debug x64 ------
3>NamespacesDerived.cpp
4>CppSharp.Parser.CSharp -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Parser.CSharp.dll
5>CppSharp.Parser -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Parser.dll
6>------ Build started: Project: CppSharp.Generator, Configuration: Debug x64 ------
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27): error C2440: 'static_cast': cannot convert from 'CustomAllocator<unsigned int>' to 'CustomAllocator<_Newfirst>'
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27): error C2440:         with
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27): error C2440:         [
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27): error C2440:             _Newfirst=std::_Container_proxy
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27): error C2440:         ]
3>(compiling source file '../../../../../C#/CppSharp/tests/dotnet/NamespacesDerived/NamespacesDerived.cpp')
3>    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>    'CustomAllocator<_Newfirst>::CustomAllocator': no overloaded function could convert all the argument types
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>        D:\Workspace\C(109,1):
3>        could be 'CustomAllocator<_Newfirst>::CustomAllocator(CustomAllocator<_Newfirst> &&)'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>            C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>            'CustomAllocator<_Newfirst>::CustomAllocator(CustomAllocator<_Newfirst> &&)': cannot convert argument 1 from 'CustomAllocator<unsigned int>' to 'CustomAllocator<_Newfirst> &&'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>                C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>                Reason: cannot convert from 'CustomAllocator<unsigned int>' to 'CustomAllocator<_Newfirst>'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>                C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>                No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
3>        D:\Workspace\C(109,1):
3>        or       'CustomAllocator<_Newfirst>::CustomAllocator(const CustomAllocator<_Newfirst> &)'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>            C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>            'CustomAllocator<_Newfirst>::CustomAllocator(const CustomAllocator<_Newfirst> &)': cannot convert argument 1 from 'CustomAllocator<unsigned int>' to 'const CustomAllocator<_Newfirst> &'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>                C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>                Reason: cannot convert from 'CustomAllocator<unsigned int>' to 'const CustomAllocator<_Newfirst>'
3>        with
3>        [
3>            _Newfirst=std::_Container_proxy
3>        ]
3>                C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>                No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
3>        C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>        while trying to match the argument list '(CustomAllocator<unsigned int>)'
3>    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,27):
3>    the template instantiation context (the oldest one first) is
3>        D:\Workspace\C(123,56):
3>        see reference to class template instantiation 'std::vector<unsigned int,CustomAllocator<unsigned int>>' being compiled
3>        C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(760,19):
3>        while compiling class template member function 'std::vector<unsigned int,CustomAllocator<unsigned int>>::~vector(void) noexcept'
3>            D:\Workspace\C(124,1):
3>            see the first reference to 'std::vector<unsigned int,CustomAllocator<unsigned int>>::~vector' in 'StdFields::StdFields'
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(763,25): error C2530: '_Alproxy': references must be initialized
3>(compiling source file '../../../../../C#/CppSharp/tests/dotnet/NamespacesDerived/NamespacesDerived.cpp')
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(764,32): error C3536: '_Alproxy': cannot be used before it is initialized
3>(compiling source file '../../../../../C#/CppSharp/tests/dotnet/NamespacesDerived/NamespacesDerived.cpp')
3>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(764,9): error C2672: '_Delete_plain_internal': no matching overloaded function found
3>(compiling source file '../../../../../C#/CppSharp/tests/dotnet/NamespacesDerived/NamespacesDerived.cpp')
3>    C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\xmemory(1111,19):
3>    could be 'void std::_Delete_plain_internal(_Alloc &,_Alloc::value_type *const ) noexcept'
3>        C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(764,9):
3>        Failed to specialize function template 'void std::_Delete_plain_internal(_Alloc &,_Alloc::value_type *const ) noexcept'
3>            C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(764,9):
3>            With the following template arguments:
3>                C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include\vector(764,9):
3>                '_Alloc=int'
3>Done building project "NamespacesDerived.Native.vcxproj" -- FAILED.
6>CppSharp.Generator -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Generator.dll
7>------ Build started: Project: VTables.Gen, Configuration: Debug x64 ------
8>------ Build started: Project: StandardLib.Gen, Configuration: Debug x64 ------
9>------ Build started: Project: NamespacesDerived.Gen, Configuration: Debug x64 ------
10>------ Build started: Project: Encodings.Gen, Configuration: Debug x64 ------
11>------ Build started: Project: Common.Gen, Configuration: Debug x64 ------
12>------ Build started: Project: CSharp.Gen, Configuration: Debug x64 ------
13>------ Build started: Project: CLI.Gen, Configuration: Debug x64 ------
14>------ Build started: Project: CppSharp.Parser.Gen, Configuration: Debug x64 ------
15>------ Build started: Project: CppSharp.Parser.Bootstrap, Configuration: Debug x64 ------
16>------ Build started: Project: CppSharp.Generator.Tests, Configuration: Debug x64 ------
17>------ Build started: Project: CppSharp.CLI, Configuration: Debug x64 ------
8>StandardLib.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\StandardLib.Gen.dll
18>------ Build started: Project: StandardLib.CLI, Configuration: Debug x64 ------
10>Encodings.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\Encodings.Gen.dll
7>VTables.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\VTables.Gen.dll
19>------ Build started: Project: Encodings.CSharp, Configuration: Debug x64 ------
20>------ Build started: Project: VTables.CSharp, Configuration: Debug x64 ------
18>StandardLib.cpp
18>/gen/StandardLib/StandardLib.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\StandardLib\StandardLib.cpp': No such file or directory
18>(compiling source file '/gen/StandardLib/StandardLib.cpp')
18>.NETCoreApp,Version=v8.0.AssemblyAttributes.cpp
20>VTables.CSharp -> D:\Workspace\C#\CppSharp\build\gen\VTables\VTables.CSharp.dll
11>Common.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\Common.Gen.dll
21>------ Build started: Project: VTables.Tests.CSharp, Configuration: Debug x64 ------
22>------ Build started: Project: Common.CSharp, Configuration: Debug x64 ------
23>------ Build started: Project: Common.CLI, Configuration: Debug x64 ------
19>Encodings.CSharp -> D:\Workspace\C#\CppSharp\build\gen\Encodings\Encodings.CSharp.dll
24>------ Build started: Project: Encodings.Tests.CSharp, Configuration: Debug x64 ------
9>NamespacesDerived.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\NamespacesDerived.Gen.dll
21>D:\Workspace\C#\CppSharp\tests\dotnet\VTables\VTables.Tests.cs(3,7,3,14): error CS0246: The type or namespace name 'VTables' could not be found (are you missing a using directive or an assembly reference?)
21>D:\Workspace\C#\CppSharp\tests\dotnet\VTables\VTables.Tests.cs(5,27,5,30): error CS0246: The type or namespace name 'Foo' could not be found (are you missing a using directive or an assembly reference?)
21>D:\Workspace\C#\CppSharp\tests\dotnet\VTables\VTables.Tests.cs(25,50,25,69): error CS0246: The type or namespace name 'DerivedClassVirtual' could not be found (are you missing a using directive or an assembly reference?)
21>D:\Workspace\C#\CppSharp\tests\dotnet\VTables\VTables.Tests.cs(17,43,17,62): error CS0246: The type or namespace name 'DerivedClassVirtual' could not be found (are you missing a using directive or an assembly reference?)
21>D:\Workspace\C#\CppSharp\tests\dotnet\VTables\VTables.Tests.cs(53,30,53,46): error CS0246: The type or namespace name 'BaseClassVirtual' could not be found (are you missing a using directive or an assembly reference?)
23>AnotherUnit_GenerateName.cpp
23>Common_GenerateName.cpp
22>Common.CSharp -> D:\Workspace\C#\CppSharp\build\gen\Common\Common.CSharp.dll
25>------ Build started: Project: Common.Tests.CSharp, Configuration: Debug x64 ------
21>Done building project "VTables.Tests.CSharp.csproj" -- FAILED.
24>D:\Workspace\C#\CppSharp\tests\dotnet\Encodings\Encodings.Tests.cs(2,13,2,22): error CS0246: The type or namespace name 'Encodings' could not be found (are you missing a using directive or an assembly reference?)
24>Done building project "Encodings.Tests.CSharp.csproj" -- FAILED.
23>/gen/Common/AnotherUnit_GenerateName.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\Common\AnotherUnit_GenerateName.cpp': No such file or directory
23>(compiling source file '/gen/Common/AnotherUnit_GenerateName.cpp')
23>/gen/Common/Common_GenerateName.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\Common\Common_GenerateName.cpp': No such file or directory
23>(compiling source file '/gen/Common/Common_GenerateName.cpp')
23>.NETCoreApp,Version=v8.0.AssemblyAttributes.cpp
15>CppSharp.Parser.Bootstrap -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Parser.Bootstrap.dll
12>CSharp.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\CSharp.Gen.dll
18>Done building project "StandardLib.CLI.vcxproj" -- FAILED.
26>------ Build started: Project: CSharp.CSharp, Configuration: Debug x64 ------
13>CLI.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\CLI.Gen.dll
27>------ Build started: Project: StandardLib.Tests.CLI, Configuration: Debug x64 ------
28>------ Build started: Project: CLI.CLI, Configuration: Debug x64 ------
9>
9>Generating bindings for NamespacesDerived (CSharp)
25>D:\Workspace\C#\CppSharp\tests\dotnet\Common\Common.Tests.cs(5,14,5,24): error CS0246: The type or namespace name 'CommonTest' could not be found (are you missing a using directive or an assembly reference?)
25>D:\Workspace\C#\CppSharp\tests\dotnet\Common\Common.Tests.cs(3,7,3,17): error CS0246: The type or namespace name 'CommonTest' could not be found (are you missing a using directive or an assembly reference?)
25>D:\Workspace\C#\CppSharp\tests\dotnet\Common\Common.Tests.cs(1011,46,1011,69): error CS0246: The type or namespace name 'AbstractWithVirtualDtor' could not be found (are you missing a using directive or an assembly reference?)
25>Done building project "Common.Tests.CSharp.csproj" -- FAILED.
9>File not found: 'NamespacesDerived.Native'
9>Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
9>Repeat 2 times:
9>--------------------------------
9>   at <Module>.CppSharp.CppParser.ParserResult.{dtor}(CppSharp.CppParser.ParserResult*)
9>--------------------------------
9>   at <Module>.CppSharp.CppParser.ParserResult.__delDtor(CppSharp.CppParser.ParserResult*, UInt32)
9>   at CppSharp.Parser.ParserResult.~ParserResult()
9>   at CppSharp.Parser.ParserResult.Dispose(Boolean)
9>   at CppSharp.Parser.ParserResult.Dispose()
9>   at CppSharp.Driver.ParseLibraries()
9>   at CppSharp.ConsoleDriver.Run(CppSharp.ILibrary)
9>   at CppSharp.Tests.NamespacesDerived.Main()
17>CppSharp.CLI -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.CLI.dll
16>CppSharp.Generator.Tests -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Generator.Tests.dll
23>Done building project "Common.CLI.vcxproj" -- FAILED.
29>------ Build started: Project: Common.Tests.CLI, Configuration: Debug x64 ------
27>CSC : error CS0006: Metadata file 'D:\Workspace\C#\CppSharp\build\gen\StandardLib\StandardLib.CLI.dll' could not be found
14>CppSharp.Parser.Gen -> D:\Workspace\C#\CppSharp\bin\Debug\CppSharp.Parser.Gen.dll
27>Done building project "StandardLib.Tests.CLI.csproj" -- FAILED.
28>CLI.cpp
26>D:\Workspace\C#\CppSharp\tests\dotnet\CSharp\CSharpPartialMethods.cs(11,22,11,36): error CS0759: No defining declaration found for implementing declaration of partial method 'TestFinalizer.DisposePartial(bool)'
26>Done building project "CSharp.CSharp.csproj" -- FAILED.
30>------ Build started: Project: CSharp.Tests.CSharp, Configuration: Debug x64 ------
28>ClassWithNestedEnum.cpp
28>Employee.cpp
28>EmployeeOrg.cpp
28>NestedEnumConsumer.cpp
29>CSC : error CS0006: Metadata file 'D:\Workspace\C#\CppSharp\build\gen\Common\Common.CLI.dll' could not be found
29>Done building project "Common.Tests.CLI.csproj" -- FAILED.
28>/gen/CLI/CLI.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\CLI\CLI.cpp': No such file or directory
28>(compiling source file '/gen/CLI/CLI.cpp')
28>/gen/CLI/ClassWithNestedEnum.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\CLI\ClassWithNestedEnum.cpp': No such file or directory
28>(compiling source file '/gen/CLI/ClassWithNestedEnum.cpp')
28>/gen/CLI/Employee.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\CLI\Employee.cpp': No such file or directory
28>(compiling source file '/gen/CLI/Employee.cpp')
28>/gen/CLI/NestedEnumConsumer.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\CLI\NestedEnumConsumer.cpp': No such file or directory
28>(compiling source file '/gen/CLI/NestedEnumConsumer.cpp')
28>/gen/CLI/EmployeeOrg.cpp(1,1): error C1083: Cannot open source file: '..\..\gen\CLI\EmployeeOrg.cpp': No such file or directory
28>(compiling source file '/gen/CLI/EmployeeOrg.cpp')
28>.NETCoreApp,Version=v8.0.AssemblyAttributes.cpp
30>CSC : error CS0006: Metadata file 'D:\Workspace\C#\CppSharp\build\obj\CSharp.CSharp\x64\Debug\ref\CSharp.CSharp.dll' could not be found
30>Done building project "CSharp.Tests.CSharp.csproj" -- FAILED.
28>Done building project "CLI.CLI.vcxproj" -- FAILED.
31>------ Build started: Project: CLI.Tests.CLI, Configuration: Debug x64 ------
31>CSC : error CS0006: Metadata file 'D:\Workspace\C#\CppSharp\build\gen\CLI\CLI.CLI.dll' could not be found
31>Done building project "CLI.Tests.CLI.csproj" -- FAILED.
9>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(5932,5): error MSB3073: The command ""C:\Program Files\dotnet\dotnet.exe" "D:\Workspace\C#\CppSharp\bin\Debug\NamespacesDerived.Gen.dll"" exited with code -1073741819.
9>Done building project "NamespacesDerived.Gen.csproj" -- FAILED.
32>------ Build started: Project: NamespacesDerived.Tests.CSharp, Configuration: Debug x64 ------
32>D:\Workspace\C#\CppSharp\tests\dotnet\NamespacesDerived\NamespacesDerived.Tests.cs(7,7,7,24): error CS0246: The type or namespace name 'NamespacesDerived' could not be found (are you missing a using directive or an assembly reference?)
32>D:\Workspace\C#\CppSharp\tests\dotnet\NamespacesDerived\NamespacesDerived.Tests.cs(180,50,180,72): error CS0246: The type or namespace name 'HasVirtualInDependency' could not be found (are you missing a using directive or an assembly reference?)
32>Done building project "NamespacesDerived.Tests.CSharp.csproj" -- FAILED.
========== Build: 18 succeeded, 14 failed, 11 up-to-date, 0 skipped ==========
========== Build completed at 13:56 and took 04,184 seconds ==========
`

@oistikbal
Copy link
Author

I have this problem with this single include file. maybe you could try it? i'd be more easier probably. "https://github.com/skypjack/entt/tree/master/single_include/entt"

@oistikbal
Copy link
Author

do am i using the library wrong? Maybe i shouldn't include in api header files but only necessary base types.

@tritao
Copy link
Collaborator

tritao commented Sep 19, 2024

I think binding a library as complicated as entt to .NET (or any other target for that matter) is a dead-end, due to a couple reasons: it's designed as header-only (so there's no symbols for P/invoke to bind to) and since the API is heavily templated, its unlikely that CppSharp support for translating templates to C# generics is going to work anyway. It also has its own RTTI system which would need custom integration work on the bindings side.

If you want a ECS, you're better off using something designed from the ground up for .NET, or find a much simpler native ECS to bind to .NET (maybe something C based like flecs?)

EDIT: https://github.com/BeanCheeseBurrito/Flecs.NET

@oistikbal
Copy link
Author

oistikbal commented Sep 19, 2024

Well, i'm not trying to bind entt. I need it to write for interop between editor and the engine. I could do that without include entt but it doesn't seems pratical. Like return type ENTT_ID_TYPE instead of uint32_t. That's why i thought probably i'm using it wrong.

Actually i was going to write editor interops manually but after i realized i need a reflection system for user defined components. I started to research AST generation at first so, i want to get warmed up with engine interoption first, plus CppSharp also supports AST. Maybe it's possible to do unreal engine like reflection. So i can use single tool for everything.

UCLASS()
class YOURPROJECT_API AHealthPotion : public AActor
{
.....
    // Health restoration value
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Potion Properties")
    float HealthRestoreValue;

    // Weight of the potion
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Potion Properties")
    float Weight;

    // Name of the potion
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Potion Properties")
    FString PotionName;

    // Function to use the potion
    UFUNCTION(BlueprintCallable, Category = "Potion Actions")
    void UsePotion(AActor* TargetActor);
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants