0_0_37578926_31042.cpp:60:39: error: 'operator()' function uses 'auto' type specifier without trailing return type
auto &operator()(Edge &e) const { return e.edge_b; }
^
0_0_37578926_31042.cpp:60:39: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:63:39: error: 'operator()' function uses 'auto' type specifier without trailing return type
auto &operator()(Edge &e) const { return e.edge_a.data.data_b; }
^
0_0_37578926_31042.cpp:63:39: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:66:39: error: 'operator()' function uses 'auto' type specifier without trailing return type
auto &operator()(Edge &e) const { return e.edge_a.data.data_a.adj; }
^
0_0_37578926_31042.cpp:66:39: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:71:33: error: 'operator*' function uses 'auto' type specifier without trailing return type
auto &operator*() { return _Getter()(std::vector<Edge>::iterator::operator*()); }
^
0_0_37578926_31042.cpp:71:33: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:108:39: error: 'getEdge' function uses 'auto' type specifier without trailing return type
auto &getEdge(uint32_t __index) { return EdgeGetter()(m_edges[__index]); }
^
0_0_37578926_31042.cpp:108:39: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:109:43: error: 'getEdgeInfo' function uses 'auto' type specifier without trailing return type
auto &getEdgeInfo(uint32_t __index) { return EdgeGetter()(m_edges[__index]); }
^
0_0_37578926_31042.cpp:109:43: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:110:43: error: 'getEdgeData' function uses 'auto' type specifier without trailing return type
auto &getEdgeData(uint32_t __index) { return EdgeDataGetter()(m_edges[__index]); }
^
0_0_37578926_31042.cpp:110:43: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:111:42: error: 'getEdgeAdj' function uses 'auto' type specifier without trailing return type
auto &getEdgeAdj(uint32_t __index) { return EdgeAdjGetter()(m_edges[__index]); }
^
0_0_37578926_31042.cpp:111:42: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:112:40: error: 'getEdgesOf' function uses 'auto' type specifier without trailing return type
auto getEdgesOf(uint32_t __from) { return EdgesOf<EdgeGetter>{m_edges.begin() + m_starts[__from], m_edges.begin() + m_starts[__from + 1]}; }
^
0_0_37578926_31042.cpp:112:40: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:113:44: error: 'getEdgesInfoOf' function uses 'auto' type specifier without trailing return type
auto getEdgesInfoOf(uint32_t __from) { return EdgesOf<EdgeGetter>{m_edges.begin() + m_starts[__from], m_edges.begin() + m_starts[__from + 1]}; }
^
0_0_37578926_31042.cpp:113:44: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:114:44: error: 'getEdgesDataOf' function uses 'auto' type specifier without trailing return type
auto getEdgesDataOf(uint32_t __from) { return EdgesOf<EdgeDataGetter>{m_edges.begin() + m_starts[__from], m_edges.begin() + m_starts[__from + 1]}; }
^
0_0_37578926_31042.cpp:114:44: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:115:43: error: 'getEdgesAdjOf' function uses 'auto' type specifier without trailing return type
auto getEdgesAdjOf(uint32_t __from) { return EdgesOf<EdgeAdjGetter>{m_edges.begin() + m_starts[__from], m_edges.begin() + m_starts[__from + 1]}; }
^
0_0_37578926_31042.cpp:115:43: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:116:23: error: 'getEdges' function uses 'auto' type specifier without trailing return type
auto getEdges() { return EdgesOf<EdgeGetter>{m_edges.begin(), m_edges.end()}; }
^
0_0_37578926_31042.cpp:116:23: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:117:27: error: 'getEdgesInfo' function uses 'auto' type specifier without trailing return type
auto getEdgesInfo() { return EdgesOf<EdgeGetter>{m_edges.begin(), m_edges.end()}; }
^
0_0_37578926_31042.cpp:117:27: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:118:27: error: 'getEdgesData' function uses 'auto' type specifier without trailing return type
auto getEdgesData() { return EdgesOf<EdgeDataGetter>{m_edges.begin(), m_edges.end()}; }
^
0_0_37578926_31042.cpp:118:27: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp:119:26: error: 'getEdgesAdj' function uses 'auto' type specifier without trailing return type
auto getEdgesAdj() { return EdgesOf<EdgeAdjGetter>{m_edges.begin(), m_edges.end()}; }
^
0_0_37578926_31042.cpp:119:26: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_37578926_31042.cpp: In member function 'void OY::DirectedGraph<_Tp>::prepare()':
0_0_37578926_31042.cpp:98:22: error: expected unqualified-id before '[' token
auto [from, to, value] = m_edgeBuffer[i];
^
0_0_37578926_31042.cpp:99:32: error: 'from' was not declared in this scope
m_edges[cursor[from]] = {cursor[from], from, to, value};
^
0_0_37578926_31042.cpp:99:62: error: 'to' was not declared in this scope
m_edges[cursor[from]] = {cursor[from], from, to, value};
^
0_0_37578926_31042.cpp:99:66: error: 'value' was not declared in this scope
m_edges[cursor[from]] = {cursor[from], from, to, value};
^
0_0_37578926_31042.cpp: In member function 'bool OY::UnionFind::uniteBySize(int, int)':
0_0_37578926_31042.cpp:151:41: error: expected ')' before ';' token
if (a = find(a), b = find(b); a == b) return false;
^
0_0_37578926_31042.cpp:151:49: error: expected ';' before ')' token
if (a = find(a), b = find(b); a == b) return false;
^
0_0_37578926_31042.cpp: In member function 'bool OY::UnionFind::uniteByID(int, int)':
0_0_37578926_31042.cpp:157:41: error: expected ')' before ';' token
if (a = find(a), b = find(b); a == b) return false;
^
0_0_37578926_31042.cpp:157:49: error: expected ';' before ')' token
if (a = find(a), b = find(b); a == b) return false;
^
0_0_37578926_31042.cpp: In member function 'void OY::Edmonds_tarjan<_DG, _Tp>::calc(uint32_t)::Heap::join(OY::Edmonds_tarjan<_DG, _Tp>::calc(uint32_t)::Heap&)':
0_0_37578926_31042.cpp:222:31: error: expected unqualified-id before '[' token
for (auto [value, from] : other.in_edges) push({value + other.inc - inc, from});
^
0_0_37578926_31042.cpp:222:31: error: expected ';' before '[' token
0_0_37578926_31042.cpp:222:32: error: 'value' was not declared in this scope
for (auto [value, from] : other.in_edges) push({value + other.inc - inc, from});
^
0_0_37578926_31042.cpp:222:39: error: 'from' was not declared in this scope
for (auto [value, from] : other.in_edges) push({value + other.inc - inc, from});
^
0_0_37578926_31042.cpp: In lambda function:
0_0_37578926_31042.cpp:222:45: error: expected '{' before ':' token
for (auto [value, from] : other.in_edges) push({value + other.inc - inc, from});
^
0_0_37578926_31042.cpp: In member function 'void OY::Edmonds_tarjan<_DG, _Tp>::calc(uint32_t)::Heap::join(OY::Edmonds_tarjan<_DG, _Tp>::calc(uint32_t)::Heap&)':
0_0_37578926_31042.cpp:222:45: error: expected ';' before ':' token
0_0_37578926_31042.cpp:222:45: error: expected primary-expression before ':' token
0_0_37578926_31042.cpp:222:45: error: expected ')' before ':' token
0_0_37578926_31042.cpp:222:45: error: expected primary-expression before ':' token
0_0_37578926_31042.cpp:222:99: error: expected primary-expression before ')' token
for (auto [value, from] : other.in_edges) push({value + other.inc - inc, from});
^
0_0_37578926_31042.cpp: In member function 'bool OY::Edmonds_tarjan<_DG, _Tp>::calc(uint32_t)':
0_0_37578926_31042.cpp:228:23: error: expected unqualified-id before '[' token
for (auto [index,
|