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

Serialize tall class fails at compilation #168

Open
Alecsou opened this issue Jul 31, 2024 · 4 comments
Open

Serialize tall class fails at compilation #168

Alecsou opened this issue Jul 31, 2024 · 4 comments

Comments

@Alecsou
Copy link

Alecsou commented Jul 31, 2024

Expected Behavior

No compilation error

Current Behavior

rfl\internal\no_duplicate_field_names.hpp(35,4): error C1202: recursive type or function dependency context too complex

How to Reproduce

main.c

#include "TallClass.h"
#include "rfl.hpp"
#include "rfl/json.hpp"
int main()
{
    TallClass tc{};

    const std::string json_string = rfl::json::write(tc);
}

TallClass.h

#ifndef _TALLCLASS_
#define _TALLCLASS_

/***********/
/* TallClass */
/***********/

class TallClass
{
public:
	double dummy1 = 0;
	double dummy2 = 0;
	double dummy3 = 0;
	double dummy4 = 0;
	double dummy5 = 0;
	double dummy6 = 0;
	double dummy7 = 0;
	double dummy8 = 0;
	double dummy9 = 0;
	double dummy10 = 0;
	double dummy11 = 0;
	double dummy12 = 0;
	double dummy13 = 0;
	double dummy14 = 0;
	double dummy15 = 0;
	double dummy16 = 0;
	double dummy17 = 0;
	double dummy18 = 0;
	double dummy19 = 0;
	double dummy20 = 0;
	double dummy21 = 0;
	double dummy22 = 0;
	double dummy23 = 0;
	double dummy24 = 0;
	double dummy25 = 0;
	double dummy26 = 0;
	double dummy27 = 0;
	double dummy28 = 0;
	double dummy29 = 0;
	double dummy30 = 0;
	double dummy31 = 0;
	double dummy32 = 0;
	double dummy33 = 0;
	double dummy34 = 0;
	double dummy35 = 0;
	double dummy36 = 0;
	double dummy37 = 0;
	double dummy38 = 0;
	double dummy39 = 0;
	double dummy40 = 0;
	double dummy41 = 0;
	double dummy42 = 0;
	double dummy43 = 0;
	double dummy44 = 0;
	double dummy45 = 0; // Starts failing after here
	double dummy46 = 0;
	double dummy47 = 0;
	double dummy48 = 0;
	double dummy49 = 0;
	double dummy50 = 0;
	double dummy51 = 0;
	double dummy52 = 0;
	double dummy53 = 0;
	double dummy54 = 0;
	double dummy55 = 0;
	double dummy56 = 0;
	double dummy57 = 0;
	double dummy58 = 0;
	double dummy59 = 0;
	double dummy60 = 0;
	double dummy61 = 0;
	double dummy62 = 0;
	double dummy63 = 0;
	double dummy64 = 0;
	double dummy65 = 0;
	double dummy66 = 0;
	double dummy67 = 0;
	double dummy68 = 0;
	double dummy69 = 0;
	double dummy70 = 0;
};

#endif //_TALLCLASS_

Basically adding too much variables fails the compilation with this error. Modifying the data type of the variables doesn't change anything.
This happens even after #145 solve.

x86 build runs out of heap space, and x64 build fails with this error.

Context (Environment)

Visual Studio 2022 (v143) 17.10.0
Windows 10.0
C++20

@liuzicheng1987
Copy link
Contributor

Thanks for the report. I will take a look.

@liuzicheng1987
Copy link
Contributor

@Alecsou , I was unable to reproduce the problem...in the build pipelines, it runs through just fine. I have merged a minor change, could you check whether the problem is still there?

@Alecsou
Copy link
Author

Alecsou commented Aug 7, 2024

So compilation takes a veeeery long time, but it indeed works for x64 build ! Unfortunately, x86 still gets out of heap space, but I'm fairly guessing you can't do much about it :(

@liuzicheng1987
Copy link
Contributor

Interesting. Thanks for the update.

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