I encountered an interesting behavior where templates seem to affect whether a nested std::initializer_list is ambiguous or not. Consider the following example:
std::initializer_list