我想将size_t分配给此容器:
for m in Jan Feb Mar Apr
为此,我正在尝试将 std::vector <nts::Tristate *> _components;
转换为const size_t &
nts::Tristate *
但我有以下错误:
this->_components[0] = static_cast<nts::Tristate *>(&value);
知道为什么吗?
答案 0 :(得分:5)
如果没有问为什么你想做类似的事情,问题是这两种类型(size_t*
和nts::Tristate*
)是完全无关的,你需要< em> reinterpet 一种类型作为另一种。你用reinterpret_cast
做事。
应该注意的是,做这样的事情很可能会导致其他问题,这些问题将导致未定义的行为。需要注意的一件事是value
是一个局部变量,因为那时你存储了一个指向这个局部变量的指针,它将超出范围并消失。另一个是使用_components[0]
的程序的其余部分需要知道它实际上不是指向nts::Tristate
对象的指针,而是指向size_t
值的指针。简而言之,你正在做的事情是非常危险的。