2010-08-07 48 views
0

我想类型T的矢量变换到vectorof型K. 我尝试这样做,但它不工作:使用的static_cast用的boost ::绑定

transform(vec.rbegin(),vec.rend(),vecNew.begin(),boost::bind(static_cast<K>(),_1)); 

我得到的错误:“期望的主要表达''''令牌'“之前。我究竟做错了什么?

回答

4

使用升压投仿ll_static_cast<K>()

+1

您可能会说应该使用它,因为static_cast 是一个运算符,如sizeof,而不是函数。 – Omnifarious 2010-08-07 11:18:33

1

没有必要的静态投,除非有从T到K.没有隐式转换如果转换构造不明确,或者如果你是T ::运营商K( ),你可以这样做:

transform(vec.rbegin(),vec.rend(),vecNew.begin()); 

请注意,这也颠倒了元素的顺序。