小编Arn*_*ion的帖子

在std :: function <...>上重载

鉴于以下代码: -

#include <algorithm>
#include <iostream>
#include <functional>
#include <string>

void func(std::function<void(void)> param)
{
    param();
}

void func(std::function<void(int)> param)
{
    param(5);
}

int main(int argc, char* argv[])
{
    func([] () { std::cout << "void(void)" << std::endl; });
    func([] (int i) { std::cout << "void(int): " << i << std::endl; });

    std::string line;
    std::getline(std::cin, line);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

从VS2010编译错误: -

CppTest.cpp(18): error C2668: 'func' : ambiguous call to overloaded function
1>          CppTest.cpp(11): could be 'void func(std::tr1::function<_Fty>)'
1>          with
1>          [
1> …
Run Code Online (Sandbox Code Playgroud)

lambda templates overloading c++11

13
推荐指数
1
解决办法
2605
查看次数

将JSON字符串或字符串数​​组反序列化为Vec

我正在编写一个与JSON Web API接口的包.一个端点通常返回表单的响应{ "key": ["value1", "value2"] },但有时键只有一个值,而端点返回{ "key": "value" }而不是{ "key": ["value"] }

我想写一些通用的东西,我可以这样使用#[serde(deserialize_with)]:

#[derive(Deserialize)]
struct SomeStruct {
    #[serde(deserialize_with = "deserialize_string_or_seq_string")]
    field1: Vec<SomeStringNewType>,

    #[serde(deserialize_with = "deserialize_string_or_seq_string")]
    field2: Vec<SomeTypeWithCustomDeserializeFromStr>,
}

#[derive(Deserialize)]
struct SomeStringNewType(String);

struct SomeTypeWithCustomDeserializeFromStr(String);
impl ::serde::de::Deserialize for SomeTypeWithCustomDeserializeFromStr {
    // Some custom implementation here
}
Run Code Online (Sandbox Code Playgroud)

我该如何写一个deserialize_string_or_seq_string能够做到这一点?

rust serde serde-json

5
推荐指数
2
解决办法
2405
查看次数

可以使用HTML5 MediaSource动态生成任意尺寸和长度的单色视频吗?

假设我有一个允许用户选择宽度,高度,颜色和持续时间的页面.我希望页面然后生成那些尺寸和持续时间的视频,该视频只是该颜色的静态帧,然后将在该页面上的<video>标签中播放.我可以使用HTML5 MediaSource API执行此操作吗?

例如:如果用户选择704x396 + rgb(0,0,0)+ 00:00:15,那么我想生成一个<video>标签,播放的视频大小为704x396,长度为15秒,完全是黑色.如果你熟悉Aegisub的虚拟视频功能,那基本上就是我想模仿的东西.

据我所知,MediaSource只允许我在浏览器支持的实际视频编解码器中提供原始视频字节.它没有任何"更高级别"的API,例如允许我提供单个帧的东西.

如果不是MediaSource,还有其他方法可以做到这一点(除了捆绑编译为JS的webm/MP4编码器当然)?

video html5 media-source

3
推荐指数
1
解决办法
1279
查看次数

标签 统计

c++11 ×1

html5 ×1

lambda ×1

media-source ×1

overloading ×1

rust ×1

serde ×1

serde-json ×1

templates ×1

video ×1