The BOOST_PP_ENUM_SHIFTED macro generates a comma-separated, shifted list.
	
	Usage
		
			BOOST_PP_ENUM_SHIFTED(count, macro, data)
		
	Arguments
		
			- count
- 
				The number of repetitious calls to macro. 
				Valid values range from 0 to BOOST_PP_LIMIT_REPEAT.
			
- macro
- 
				A ternary operation of the form macro(z, n, data). 
				This macro is expanded by BOOST_PP_ENUM_SHIFTED with the next available repetition depth,
				the current repetition number, and the auxiliary data argument. 
			
- data
- 
				Auxiliary data passed to macro.
			
Remarks
		
			This macro expands to the comma-separated sequence:
			
				macro(z, 1, data), ... macro(z, count - 1, data)
			
		
			The z value that is passed to macro represents the next available repetition dimension. 
			Other macros that have _Z suffix variants internally use BOOST_PP_REPEAT--for example, BOOST_PP_ENUM_PARAMS and BOOST_PP_ENUM_PARAMS_Z. 
			Using these _Z versions is not strictly necessary, but passing the z value (that is passed to macro) to these macros allows them to reenter BOOST_PP_REPEAT with maximum efficiency.
		
		
			To directly use this z value, rather than simply passing it to another macro, see BOOST_PP_ENUM_SHIFTED_z.
		
		
			Previously, this macro could not be used recursively inside BOOST_PP_REPEAT. 
			This limitation no longer exists, as the library can automatically detect the next available repetition depth.
		
	See Also
		
	Requirements
		
	Sample Code
#include <boost/preprocessor/repetition/enum.hpp>
#include <boost/preprocessor/repetition/enum_shifted.hpp>
#define TYPE(z, n, type) type
BOOST_PP_ENUM(5, TYPE, int) // expands to int, int, int, int, int
BOOST_PP_ENUM_SHIFTED(5, TYPE, int) // expands to int, int, int, int