Last modified: 22 April 2011
Name: H5_VERSION_LE
Signature:
  `H5_VERSION_LE( int maj, int min, int rel )`

Purpose:
  Determines whether the version of the library being used is less than or equal to the specified version.

Motivation:
  The `H5_VERSION_GE` and `H5_VERSION_LE` macros are used at compile time to conditionally include or exclude code based on the version of the HDF5 library against which an application will be linked.

Description:
  The `H5_VERSION_LE` macro compares the version of the HDF5 library being used against the version number specified in the parameters.

  For more information, see “HDF5 Software Updates” at `www.hdfgroup.org/HDF5/doc/TechNotes/Version.html`.

Parameters:

  int `maj` | IN: Major version number A non-negative integer value
  int `min` | IN: Minor version number A non-negative integer value
  int `rel` | IN: Release number A non-negative integer value

Returns:

  `TRUE` | If the library version is less than or equal to the version number specified
  `FALSE` | If the library version is greater than the version number specified

  A library version is less than the specified version number if its major version is smaller than the specified major version number. If the major version numbers are the same, it is less than the specified version number if its minor version is smaller than the specified minor version number. If the minor version numbers are the same, then a library version would be less than the specified version number if its release number is smaller than the specified release number.

Fortran Interface:
  None

Example Usage:
  Suppose an application wants to call different functions based on the version of the HDF5 library to which an application will be linked. For example, the link functions, `H5Lxxx`, are new in the 1.8 versions of HDF5, and some group functions, `H5Gxxx`, are deprecated in the 1.8 versions. The following code uses `H5Gunlink` if the library version is 1.6.10 or earlier or uses `H5Ldelete` if the library version is not 1.6.10 or earlier. Similarly, the code calls `H5Gopen` or `H5Lexists` to make sure the group has been deleted.

          #if H5_VERSION_LE(1,6,10)
              ret = H5Gunlink(file, "Group");
              CHECK(ret, FAIL, "H5Gunlink");

              H5E_BEGIN_TRY {
                  grp = H5Gopen(file, "Group");
              } H5E_END_TRY;
              VERIFY(grp, FAIL, "H5Gopen");
          #else
              ret = H5Ldelete(file, "Group", H5P_DEFAULT);
              CHECK(ret, FAIL, "H5Lunlink");

              status = H5Lexists(file, "Group", H5P_DEFAULT);
              VERIFY(status, FALSE, "H5Lexists");
          #endif

History:

  Release`` | Change
  1.8.7 | C macro introduced in this release.