-
-
Notifications
You must be signed in to change notification settings - Fork 146
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
fix JSON #1165
fix JSON #1165
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. 寿命について
以前触れたように、寿命を延長出来るようにして、次のコードが通るようにするのがいいと思います。
https://discord.com/channels/443310697397354506/999983621408567326/1162390851624898581
#include <Siv3D.hpp>
JSON f() {
JSON json = UR"({
"foo": 42,
"bar": "Hello, world!",
"baz": [1, 2, 3]
})"_json;
// operator[] の返り値はプロキシとして働く、pvalue の JSON なので、nlohmann::json の値を所有していない
return json[U"baz"];
}
void Main() {
// 現状: 返り値は元のインスタンスが所有している nlohmann::json を参照しているが、その nlohmann::json は既に破棄されているので実行時エラー
Console << f();
}
2. メンバ関数clear
について
clear
についても、not m_isValid
のチェックを無くし、invalid な状態からの復帰が出来るようにするべきです。
寿命の延長を実装するなら、 |
ありがとうございます。 |
Co-authored-by: Raclamusi <[email protected]>
メンバ関数 そのため、Invalid の |
レビューありがとうございました。 @Raclamusi @tomolatoon |
swap
を定義JSON::operator =(const std::initializer_list<std::pair<String, JSON>>& list)
およびJSON::operator =(const Array<JSON>& array)
が古い内容を消去していなかったバグを修正 一部の JSON::operator =(...) が古い内容を消去していなかったバグを修正 #1166