Original Post
Shouldnt the 0 implicitly cast to Data* in both cases?
uint nw = get_refid("northwest");
Data* pNorthwest = nw == 0 ? 0 : Dataset[nw]; // Does not work
Data* pNorthwest = nw != 0 ? Dataset[nw] : 0; // Works
// Dataset[nw] returns Data*