我有以下测试代码:
#include <iostream>
#include <string>
void printValue(std::string&& val)
{
std::cout << "Got value: " << val << "\n";
}
int main() {
std::string testValue = "Test Value";
auto lambda = [testValue = std::move(testValue)]() mutable
{
printValue(std::move(testValue));
};
lambda();
lambda();
lambda();
}
Run Code Online (Sandbox Code Playgroud)
我得到了结果:
Got value: Test Value
Got value: Test Value
Got value: Test Value
Run Code Online (Sandbox Code Playgroud)
它是一个有效的假设,从已经移动捕获的lambda中移动一个对象将始终具有它被移动到lambda中的初始状态,或者这只是一个对象处于"有效但未指定状态"的工件?
我有一个包含自己类型的子的结构.这些孩子被包裹在Arcs中,我在调用serde_json::to_string它时遇到问题.我的结构是:
#[derive(Serialize, Deserialize)]
pub struct Category {
pub id: i32,
pub name: String,
pub parent_id: i32,
pub children: Vec<Arc<Category>>,
}
Run Code Online (Sandbox Code Playgroud)
这会产生错误the trait 'serde::Serialize' is not implemented for 'std::sync::Arc<db::queries::categories::Category>'我尝试了一些不同的方法来使序列化工作,例如:
#[serde(serialize_with = "arc_category_vec")]
pub children: Vec<Arc<Category>>
Run Code Online (Sandbox Code Playgroud)
fn arc_category_vec<S>(value: &Vec<Arc<Category>>, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut seq = serializer.serialize_seq(Some(value.len()))?;
for e in value {
seq.serialize_element(e.as_ref())?;
}
seq.end()
}
Run Code Online (Sandbox Code Playgroud)
这没有帮助,因为我得到相同的错误.我也尝试过:
impl Serialize for Arc<Category> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where …Run Code Online (Sandbox Code Playgroud) 登录后,我设置了一些cookie,它们可以在FF,Chrome,Edge等环境中使用。但是由于某些原因,Samsung Internet Browser似乎忽略了我的cookie。
我已经启用了cookie,并且它正在接受来自其他站点的cookie,但是我不知道为什么它不接受它们。我从服务器获取了此捕获:
HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: token=e1c137y8WEZItXVWExXBWRyQl9mxgxEvEMG++F6pzwart%2FAO0lTSA3tL48oeHclD%2FLQMdXWhgXvefpGR3QGMqwMe8cg%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: email=%2FwGLVu+6Yv5fYpSyZwRE8TIi0MlZZ6WaN+OaKusCF6pEyQjomquJmWwqSgrcHg2dcBeMBU%2Foeg%3D%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: testing=TESTETSETESET; HttpOnly
Server: Rocket
Content-Length: 56
Date: Wed, 01 May 2019 07:03:43 GMT
{ ... }
Run Code Online (Sandbox Code Playgroud)
我尝试过更改HttpOnly,SameSite,安全和域设置,但到目前为止没有任何更改。
有任何想法吗?
三星互联网版本9.2.00.70
编辑:
似乎是因为从Ajax查询中设置了cookie。我将其更改为来自常规形式POST的响应,并且似乎已经奏效。更多挖掘...