Illegal token on right side of ::

前端 未结 3 959
傲寒
傲寒 2021-01-31 01:25

I have the following template declaration:

template 
   void IterTable(int&                       rIdx,
                  std::vector

        
3条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-31 02:21

    My guess is that max has been made a macro. This happens at some point inside windows.h.

    Define NOMINMAX prior to including to stop windows.h from doing that.

    EDIT:

    I'm still confident this is your problem. (Not including would result in a different error). Place #undef max and #undef min just before the function and try again. If that fixes it, I was correct, and your NOMINMAX isn't being defined properly. (Add it as a project setting.)

    You can also prevent macro expansion by: (std::numeric_limits::max)().


    On a side note, why not do std::numeric_limits::min() instead of negating the max?

提交回复
热议问题