This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/70637] New: Ambiguity error invoking a constructor with double brace initialization
- From: "steveire at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 12 Apr 2016 13:37:11 +0000
- Subject: [Bug c++/70637] New: Ambiguity error invoking a constructor with double brace initialization
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70637
Bug ID: 70637
Summary: Ambiguity error invoking a constructor with double
brace initialization
Product: gcc
Version: 5.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: steveire at gmail dot com
Target Milestone: ---
$ g++ --version
g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ g++ double-braces.cpp -std=c++11
double-braces.cpp: In function âint main()â:
double-braces.cpp:16:20: error: call of overloaded âSomeClass(<brace-enclosed
initializer list>)â is ambiguous
SomeClass sc({{}});
^
double-braces.cpp:7:12: note: candidate:
SomeClass::SomeClass(std::vector<std::vector<float> >)
explicit SomeClass(std::vector<std::vector<float>> samples)
^
double-braces.cpp:4:7: note: candidate: SomeClass::SomeClass(const SomeClass&)
class SomeClass
^
double-braces.cpp:4:7: note: candidate: SomeClass::SomeClass(SomeClass&&)
$ cat double-braces.cpp
#include <vector>
class SomeClass
{
public:
explicit SomeClass(std::vector<std::vector<float>> samples)
: mSamples(std::move(samples))
{
}
std::vector<std::vector<float>> mSamples;
};
int main()
{
SomeClass sc({{}});
}