我目前正在尝试将LibRealsense包装到Unreal 4插件中。这个库提供了一些C API和一些C ++ API(包装了它的C API),所以我正在使用C ++(这对Unreal有意义)。
但是有一种我以前从未见过的运算符重载(在rs_pipeline.hpp中):
customValueToPosition: function(val, minVal, maxVal) {
if(!ticksPositions[val]){
console.log("value => " + val);
ticksPositions[val] = calculateValuePosition(val);
}
return ticksPositions[val];
},
customPositionToValue: function(percent, minVal, maxVal) {
var minPos;
var maxPos;
var index = Math.round(percent * 16);
var min = (ticksArray[index - 1]);
var max = (ticksArray[index]);
minPos = ticksPositions[min];
maxPos = ticksPositions[max];
var value = max - ((maxPos-percent)/(maxPos-minPos)) * (max - min);
return Math.round(value);
}
class pipeline
{
public:
pipeline(context ctx = context())
...
operator std::shared_ptr<rs2_pipeline>() const
{
return _pipeline;
}
private:
context _ctx;
std::shared_ptr<rs2_pipeline> _pipeline;
}
是管道的C类型,可以在所有c ++类中作为共享指针进行访问。例如:
rs2_pipeline
因此,当我尝试使用C ++管道调用 class config
{
public:
...
bool can_resolve(std::shared_ptr<rs2_pipeline> p) const
...
}
时
对象,我需要获取内部config.can_resolve
。但是我怎么称呼shared_ptr<rs_pipline>
?究竟是哪种运算符?