On 7/12/22 10:11, Steven Schveighoffer wrote:

> The algorithm to compare *any* arrays is first verify the lengths are
> the same. Then for each element in the array, compare them. Since there
> are 0 elements in both the empty string and the null string, they are
> equal.

Checking .empty() covered all of my uses cases. I think... :)

void foo(string s) {
  import std.array;
  assert(s.empty);
}

void main() {
  // Literal null
  foo(null);

  // Zero-length and pointing at '\0'
  foo("");

  // Fresh
  string a;
  foo(a);

  // Shrunk
  string b = "hello";
  b.length = 0;
  assert(b.ptr !is null);
  foo(b);
}

Ali

Reply via email to