C++ 如何转换输入类型<;uint16_t>;要在halide::generator中创建公共数据类型(如int)?

C++ 如何转换输入类型<;uint16_t>;要在halide::generator中创建公共数据类型(如int)?,c++,halide,C++,Halide,我是一个尝试卤化物编程的新手。我通过Halide::Generator将一些卤化物代码移植到Android时遇到了一个问题。下面是我的代码: #include "Halide.h" using namespace Halide; using namespace Halide::ConciseCasts; using namespace std; Func align_layer(int i) { Func ret; Var x, y; ret(x, y) = i;

我是一个尝试卤化物编程的新手。我通过
Halide::Generator
将一些卤化物代码移植到Android时遇到了一个问题。下面是我的代码:

#include "Halide.h"
using namespace Halide;
using namespace Halide::ConciseCasts;
using namespace std;
Func align_layer(int i) {
    Func ret;
    Var x, y;

    ret(x, y) = i;

    return ret;
}

class TestGenerator : public Halide::Generator<TestGenerator> 
{
    public:
    Input<uint16_t> value{"value"};

    // We then define a method that constructs and return the Halide
    // pipeline:
    void generate() 
    {
        int test = value;
    }
};

HALIDE_REGISTER_GENERATOR(TestGenerator, test_generator)
#包括“Halide.h”
使用卤化物;
使用名称空间Halide::concisecast;
使用名称空间std;
Func align_图层(int i){
Func-ret;
变量x,y;
ret(x,y)=i;
返回ret;
}
TestGenerator类:公共卤化物::生成器
{
公众:
输入值{“值”};
//然后,我们定义一个构造并返回卤化物的方法
//管道:
void生成()
{
int测试=数值;
}
};
卤化物寄存器发生器(测试发生器,测试发生器)
当我编译它时,我得到了以下错误:

generator_test.cpp:31:14:错误:无法在初始化中将'Halide::Internal::GeneratorBase::Input{aka Halide::GeneratorInput}'转换为'int' int测试=数值

我做了一些尝试:
int测试=(int)(值)
或者用例转换,都不起作用


谁能帮我一下吗

非主题:关于–其他名称空间也是如此,导入越多,名称冲突的风险就越大……您是否已达到峰值?你看了这张照片了吗?我这样做,只是为了注意到这不是预期用途。。。看到你想做什么,我想你很早就开始使用发电机了。建议:在您转向更高级的概念(如发电机)之前,请阅读更基本的教程,了解您实际可以对卤化物中定义的元素执行哪些操作。错误会告诉您什么?该
不是整数类型。。。它是一个
Halide::Internal::GeneratorBase::Input
。所以你不能把它转换成int。照@Aconcagua说的去做。我正在调查教程。