Czy jest prawnie zadeklarować zmienną pętli w pętli for opartej na zakresie z tą samą nazwą, której używam w wyrażeniu wyrażenia pętli? Mam nadzieję, że przykład ten wyjaśnia.Identyfikator o tej samej nazwie zarówno w wyrażeniu, jak i deklaracji opartej na zakresie dla
#include <iostream>
#include <vector>
struct bar {
std::vector<int> nums;
};
int main()
{
bar b;
b.nums = {1, 2, 3};
for(int b : b.nums)
std::cout << b << std::endl;
}
gcc 4,8 daje błąd, podczas gdy clang 3.2 pozwala na to.
[Zgłoszono błąd do gcc] (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54430). –
@JesseDobra Dzięki za to kopanie. Okazuje się, że nie znalazłem nic na bugzilli, ponieważ szukałem "opartego na bazie" zamiast "opartego na zasięgu". Nie wiem, jak ten termin zamanifestował się w mojej głowie, ten sam błąd też się zdarzył w tytule. – inf