Without the ref only the last element of __devicenames is stored in
_devicenames: The temporary is deleted at the end of the for body,
therefore the pointer to the c_str is no longer valid and might be
reused by the implementation. By using a reference in the for head
the c_str does not return a ref to the temporary but to the original
array wich's lifetime is till the end of the function.