|
Boost Users : |
From: Robert Dailey (rcdailey_at_[hidden])
Date: 2007-12-20 17:46:24
If I have to do it manually it pretty much defeats the purpose of using it
in the first place. I want it to be automated.
On Dec 20, 2007 4:44 PM, Andry <andry_at_[hidden]> wrote:
> Hello Robert,
>
> Friday, December 21, 2007, 12:51:03 AM, you wrote:
>
> RD> I'm currently compiling my code in Visual Studio 2005. Below
> RD> is the code that utilizes BOOST_PP_COUNTER. Note that the goal
> RD> here is to increment the counter 1 time each time the
> RD> CHECK_MATCH_AND_RETURN macro is used. This allows me to make sure
> RD> that I've got one macro call per enumeration member. The problem
> RD> I'm having is that I'm getting page after page of compiler error
> RD> and as far as I can tell I'm using the counter system as it was
> RD> shown in the code examples. Below I've also listed some of the
> RD> compiler errors I'm getting:
>
> RD>
> //=========================================================================================
> RD> CameraAction StringToCameraAction( const std::string& str )
> RD> {
> RD> // I'm using a macro here because I need the stringizing preprocessor
> operator (#)
> RD> // to make the conditionals more manageable. By using
> RD> this macro, I never have to explicitly
> RD> // update the string comparison itself if the enumeration names ever
> change.
> RD> #define CHECK_MATCH_AND_RETURN( action ) if( str ==
> RD> #action ) { return action; } #include BOOST_PP_UPDATE_COUNTER()
>
> RD> CHECK_MATCH_AND_RETURN( ROTATE_LEFT )
> RD> CHECK_MATCH_AND_RETURN( ROTATE_RIGHT )
> You can't do that cause # is invalid preprocessor token. Instead you
> should explicitly write include lines:
>
> #define CHECK_MATCH_AND_RETURN( action ) if( str == #action ) { return
> action; }
> CHECK_MATCH_AND_RETURN( ROTATE_LEFT )
> #include BOOST_PP_UPDATE_COUNTER()
> CHECK_MATCH_AND_RETURN( ROTATE_RIGHT )
> #include BOOST_PP_UPDATE_COUNTER()
>
> etc.
>
> --
> Best regards,
> Andry mailto:andry_at_[hidden]
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net