'np.empty_like(array) -> empty array of the same shape and layout
np.empty_like(scalar) -> empty 0-d array of the scalar type'

def generic(self):

    def typer(arg, dtype=None):
        if (dtype is not None):
            nb_dtype = _parse_dtype(dtype)
        elif isinstance(arg, types.Array):
            nb_dtype = arg.dtype
        else:
            nb_dtype = arg
        if (nb_dtype is not None):
            if isinstance(arg, types.Array):
                layout = (arg.layout if (arg.layout != 'A') else 'C')
                return arg.copy(dtype=nb_dtype, layout=layout)
            else:
                return types.Array(nb_dtype, 0, 'C')
    return typer
