range (C+)

Specifies a range of allowable values for arguments or fields whose values are set at run time.

[ range( 
   low,  
   high 
) ]

Parameters

  • low
    The low range value.

  • high
    The high range value.

Remarks

The range C++ attribute has the same functionality as the range MIDL attribute.

Example

// cpp_attr_ref_range.cpp
// compile with: /LD
#include <unknwn.h>
[module(name="MyLib")];

[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]
__interface ICustom {
   HRESULT Custom([in] long l, [out, retval] long *pLong);
   HRESULT length_is1([in, range(0, 999)] long f, [in, length_is(f)] char array[10]);
   HRESULT length_is2([in, range(-99, -1)] long f, [in, length_is("f"), size_is(10)] char *array);
};

Requirements

Attribute Context

Applies to

Interface method, interface parameter

Repeatable

No

Required attributes

None

Invalid attributes

None

For more information about the attribute contexts, see Attribute Contexts.

See Also

Other Resources

IDL Attributes

Method Attributes

Parameter Attributes

Data Member Attributes

ATL Samples