reinterpret_cast
类似于:
std::unique_ptr< const T , void (*) (const T *) >
to_const ( std::unique_ptr< T , void (*) (T *) > &ptr )
{
return { ptr.release() ,
reinterpret_cast< void (*) (const T *) >( ptr.get_deleter() ) } ;
}
这里使用object调用caste deleter函数,实际上是非const 但有没有更清洁的方法来做这种转移,同时避免UB?
答案 0 :(得分:2)
不使用> show_funcs("test_funcs2.lua")
Group[1]:
local d = a + b
local e = b - c
return d *e
Group[2]:
if (person.age == 18) then
print("Adult")
else
print("Kid")
end
if (person.money > 20000) then
print("Rich")
else
print("poor")
end
Group[3]:
return x + y;
Group[4]:
return x - y;
Group[5]:
return x * y;
Group[6]:
return x / y;
作为删除类型,不。但我们可以制作自己的删除者:
void (*)(const T *)
这可以推广到任何删除器类型。