---
description: "Learn more about: range (C++)"
title: "range (C++ COM Attribute)"
ms.date: "10/02/2018"
f1_keywords: ["vc-attr.range"]
helpviewer_keywords: ["range attribute"]
ms.assetid: f352f79e-ecb3-4cdd-9cdd-8406ef473594
---
# range (C++)
Specifies a range of allowable values for arguments or fields whose values are set at run time.
## Syntax
```cpp
[ 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](/windows/win32/Midl/range) MIDL attribute.
## Example
```cpp
// cpp_attr_ref_range.cpp
// compile with: /LD
#include
[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 | Value |
|-|-|
|**Applies to**|Interface method, interface parameter|
|**Repeatable**|No|
|**Required attributes**|None|
|**Invalid attributes**|None|
For more information about the attribute contexts, see [Attribute Contexts](cpp-attributes-com-net.md#contexts).
## See also
[IDL Attributes](idl-attributes.md)
[Method Attributes](method-attributes.md)
[Parameter Attributes](parameter-attributes.md)
[Data Member Attributes](data-member-attributes.md)