我正在尝试编写一个简单的 SGX 飞地,它接受一个布尔向量,但显然 edger8r 创建了 c 代码;所以edl代码
enclave{
from "sgx_tstdc.edl" import *;
include "BetaDist.h"
include <vector>
trusted {
BetaDist Estimate(std::vector<bool> X, double max_z, double max_delta);
};
untrusted {
};
};
产生一个编译错误(有趣的是,英特尔编译器在标题“灾难性错误”下报告它)说vector
找不到标头。
在我看来,这个问题可以通过使用 c++ 标志编译输出边缘代码来解决。那行得通吗?即使是这样,是否有更简洁的方法来做到这一点(即具有带有 C++ 标准类型参数的边缘函数)?
PS:我没有足够的代表来添加新标签,有人会用'edger8r'标记这个吗?我认为这会有所帮助。