diff --git a/sycl/include/sycl/nd_range.hpp b/sycl/include/sycl/nd_range.hpp index 9d1a0f51408ce..04c9fcc99396d 100644 --- a/sycl/include/sycl/nd_range.hpp +++ b/sycl/include/sycl/nd_range.hpp @@ -62,6 +62,11 @@ template class nd_range { nd_range(nd_range &&rhs) = default; nd_range &operator=(const nd_range &rhs) = default; nd_range &operator=(nd_range &&rhs) = default; + +#ifndef __INTEL_PREVIEW_BREAKING_CHANGES + nd_range() = default; +#endif // __INTEL_PREVIEW_BREAKING_CHANGES + ~nd_range() = default; // Common hidden friend functions for by-value semantics diff --git a/sycl/test/basic_tests/nd_range.cpp b/sycl/test/basic_tests/nd_range.cpp index 39e1479f31481..dcce69be4f86a 100644 --- a/sycl/test/basic_tests/nd_range.cpp +++ b/sycl/test/basic_tests/nd_range.cpp @@ -58,4 +58,13 @@ int main() { assert(three_dim_nd_range.get_group_range() == sycl::range<3>(2, 2, 2)); assert(three_dim_nd_range.get_offset() == sycl::id<3>(0, 0, 0)); cout << "three_dim_nd_range passed " << endl; + +#ifndef __INTEL_PREVIEW_BREAKING_CHANGES + // Check that a default-constructed nd_range has zeroed ranges and offset. + sycl::nd_range<3> default_nd_range; + assert(default_nd_range.get_global_range() == sycl::range<3>(0, 0, 0)); + assert(default_nd_range.get_local_range() == sycl::range<3>(0, 0, 0)); + assert(default_nd_range.get_offset() == sycl::id<3>(0, 0, 0)); + cout << "default nd_range passed " << endl; +#endif // __INTEL_PREVIEW_BREAKING_CHANGES }