I am stuck with compiler errors in VS 2013, where my custom class has an ambiguity error, but it works without ambiguity for std::vector
#include <initializer_list>
#include <vector>
using namespace std;
class MyArray
{
public:
std::vector< int > values;
MyArray(int s) : values(s) { }
MyArray(std::initializer_list< int >list) { values = list; }
};
int main ()
{
vector<int> vx({9,8,7});
MyArray mx({9, 8, 7});
vector<int> vy({9});
MyArray my({9});
MyArray mz(std::initializer_list<int>{9});
}
Of course, I can correct the ambiguity by adding the type explicitly: MyArray my(std::initializer_list<int>{9})but this is very inconvenient. Is there a way to code constructors so that VS doesn't complain about ambiguity for my class?
Since it std::vectordoes not give errors of ambiguity, it would seem that this should be possible.
source
share