C ++中的模板化结构

时间:2018-10-10 06:42:03

标签: c++11 visual-studio-2012 visual-studio-2015 c++14

我有一个带模板的结构,并且在Structure处的构造函数有错误。

我已经使用VS2012开发了代码,现在使用VS2015打开了项目,但是我遇到了这个问题。

我该如何解决?

template<typename It>
Rect_< typename VT<typename VT<It>::value_type>::value_type > BoundingRect(It Begin,It End,int inc=0)
{
            typedef typename VT<typename VT<It>::value_type>::value_type T;
            struct M{
                T x,X,y,Y;
                M():x(std::numeric_limits<T>::max()),X(-x),y(x),Y(X){}
                void operator()(const VT<It>::value_type v)
                {
                    if(x>v.x) x=v.x;
                    if(X<v.x) X=v.x;
                    if(y>v.y) y=v.y;
                    if(Y<v.y) Y=v.y;
                }
            };
            const M m( std::for_each(Begin,End,M()) );
            return inc? Rect_<T>( m.x-inc, m.y-inc, m.X-m.x+inc*2, m.Y-m.y+inc*2 ):Rect_<T>( m.x, m.y, m.X-m.x, m.Y-m.y );
}

错误在这一行

M():x(std::numeric_limits<T>::max()),X(-x),y(x),Y(X){}

as C2589 '(':illegal token on right side of '::'
   C2059 syntax error: ':

如何解决错误? :'

0 个答案:

没有答案