Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
dctwin
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
by
dctwin
23d ago
I just want to say that this is a really great article, probably my favourite explanation of cpp coroutines - thank you
2.
▲
by
dctwin
2mo ago
Am I reading this right? Opus + Composer did a comparable job to Fable, at ~1/19th the price, and half the LoC?
3.
▲
by
dctwin
5mo ago
The layoffs haven't even really started yet... I'm very worried about the next two years
4.
▲
by
dctwin
2y ago
Oh I think I finally groked what you suggested! Something like template <StringLiteral str> static constexpr Key<str> key in the class namespace - I think this this would work, but if I understand this correctly, You would need
5.
▲
by
dctwin
2y ago
Whether or not this is useful (I am also not sure), the JSON doesn't need to survive into runtime at all. If you include the JSON, do a bunch of `if constexpr`, and never touch the JSON outside of a constexpr context, it doesn't h
6.
▲
by
dctwin
2y ago
Yes, very true. I noticed that even already at 3dp the floats start to compare unequal. The long double helped but it's not really. I googled and found two examples of constexpr float parsing repositories, but from the sounds of things
7.
▲
by
dctwin
2y ago
You're right to point out that this is really 'first class JSON', rather than the Pydantic/Jackson type thing where the json barely exists and is immediately transformed into your models and classes. Thanks for reading t
8.
▲
by
dctwin
2y ago
The opposite 'toString' problem seems harder - I didn't try, but it should be possible now that std::string is constexpr. I don't think you could parse it with, say, a class that has a std::string member (because of the
9.
▲
by
dctwin
2y ago
You can do something similar, no? std::pow is not constexpr (most float stuff is not, presumably due to floating point state) but you can implement 10^x anyway
10.
▲
by
dctwin
2y ago
Despite my writing the article I agree
11.
▲
by
dctwin
2y ago
Thanks for the idea! Yes constexpr std::vector feels like cheating
12.
▲
by
dctwin
2y ago
Yes, the nonconstexpr version does just that, unless I misunderstood your question. See also boost::spirit for a 'big' version of this
13.
▲
by
dctwin
2y ago
Hm - so this would instantiate a variable for each key in the class namespace? I admit I haven't seen anything like this but sounds very interesting
14.
▲
by
dctwin
2y ago
I was able to do the primitive long double result = 0.0; while (...) { if (json[head] == '.') ... result *= 10; result += json[head] - '0'; } in a constexpr function with no problem :)
15.
▲
by
dctwin
2y ago
Yes, I agree. I don't see much practical use in this. I was just surprised how (relatively) straightforwards this is to do, and thought it was more cool than useful
16.
▲
by
dctwin
2y ago
Thank you!
17.
▲
Compile-time JSON deserialization in C++
(medium.com)
108 points
by
dctwin
2y ago
|
88 comments
18.
▲
by
dctwin
2y ago
Hello! I wrote this short blog post about using pattern-matching-like template metaprogramming to deserialize JSON at build time - please let me know what you think (especially if you see improvements)
19.
▲
Wavelet Based Features for Automatic Synthesizer Programming
(medium.com)
21 points
by
dctwin
3y ago
|
0 comments