首页 > 解决方案 > 预期的 std::vector, 收到 std::vector

问题描述

我在 C++ 中使用Essentia框架,我的代码在调试模式下编译并运行良好。但是当我尝试在发布模式下运行它时,这个片段会引发异常

void SpleeterWrapper::LoadFromWav(std::vector<StereoSample>& result, std::string path)
{
    std::unique_ptr<Algorithm> audioLoader(AlgorithmFactory::create("AudioLoader", "filename", path));
    Real sr;
    int nchnls, bitRate;
    std::string md5, codec;
    audioLoader->output("audio").set(result);
    audioLoader->output("sampleRate").set(sr);
    audioLoader->output("numberChannels").set(nchnls);
    audioLoader->output("md5").set(md5);
    audioLoader->output("bit_rate").set(bitRate);
    audioLoader->output("codec").set(codec);
    audioLoader->compute();
    audioLoader->reset();
}

例外是

libc++abi.dylib: terminating with uncaught exception of type essentia::EssentiaException: In AudioLoader::audio::set(): Error when checking types. Expected: `std::vector<StereoSample>`, received: `std::vector<StereoSample>`

这对我没有多大帮助,想知道我做错了什么,这是否可能是 Essentia 库的问题,是否有人遇到过这样的事情,以及是否有人对我可以在哪里找到问题有任何想法这里!

(我试过制作一个临时向量,然后用结果交换内容,同样的问题)(编辑:抱歉重复,不知道用谷歌搜索什么来找到解决方案,谢谢大家的输入)

标签: c++templates

解决方案


推荐阅读