0_0_35986786_14068.cpp:8:37: error: expected ',' before ')' token
static_assert(push || !break_conds);
^
0_0_35986786_14068.cpp:8:37: error: expected string-literal before ')' token
0_0_35986786_14068.cpp: In member function 'void segment_tree<Node_t, Query_t, push, break_conds>::update(int, int, int, int, int, const Args& ...)':
0_0_35986786_14068.cpp:44:8: error: expected '(' before 'constexpr'
if constexpr (break_conds) assert(i < length);
^
0_0_35986786_14068.cpp:45:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'Query_t segment_tree<Node_t, Query_t, push, break_conds>::query(int, int, int, int, int, const Args& ...)':
0_0_35986786_14068.cpp:63:8: error: expected '(' before 'constexpr'
if constexpr (break_conds) assert(i < length);
^
0_0_35986786_14068.cpp:64:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'void segment_tree<Node_t, Query_t, push, break_conds>::update_point(int, int, int, int, const Args& ...)':
0_0_35986786_14068.cpp:81:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'Query_t segment_tree<Node_t, Query_t, push, break_conds>::query_point(int, int, int, int, const Args& ...)':
0_0_35986786_14068.cpp:96:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'Query_t segment_tree<Node_t, Query_t, push, break_conds>::query_up(int, int, int, int, const Args& ...)':
0_0_35986786_14068.cpp:110:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'int segment_tree<Node_t, Query_t, push, break_conds>::search_left(int, int, int, int, int, std::tuple<_Lock& ...>)':
0_0_35986786_14068.cpp:128:53: error: missing template arguments before '(' token
&& !apply(&Node_t::contains, tuple_cat(tuple(data[i]), args))) return -1;
^
0_0_35986786_14068.cpp:130:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: In member function 'int segment_tree<Node_t, Query_t, push, break_conds>::search_right(int, int, int, int, int, std::tuple<_Lock& ...>)':
0_0_35986786_14068.cpp:146:53: error: missing template arguments before '(' token
&& !apply(&Node_t::contains, tuple_cat(tuple(data[i]), args))) return -1;
^
0_0_35986786_14068.cpp:148:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986786_14068.cpp: At global scope:
0_0_35986786_14068.cpp:199:18: error: enclosing class of constexpr non-static member function 'bool Node::get_condition() const' is not a literal type
constexpr bool get_condition() const { return true; }
^
0_0_35986786_14068.cpp:158:8: note: 'Node' is not literal because:
struct Node {
^
0_0_35986786_14068.cpp:158:8: note: 'Node' is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor
0_0_35986786_14068.cpp: In member function 'Node::T Node::get() const':
0_0_35986786_14068.cpp:174:30: error: missing template arguments before '(' token
T get() const { return pair(sum, maxv); }
^
0_0_35986786_14068.cpp: In static member function 'static Node::T Node::default_value()':
0_0_35986786_14068.cpp:200:41: error: missing template arguments before '(' token
static T default_value() { return pair(0, -1); }
^
0_0_35986786_14068.cpp: In static member function 'static Node::T Node::merge(const T&, const T&)':
0_0_35986786_14068.cpp:202:16: error: missing template arguments before '(' token
return pair(a.first + b.first, max(a.second, b.second));
^
0_0_35986786_14068.cpp: In instantiation of 'segment_tree<Node_t, Query_t, push, break_conds>::segment_tree(const std::vector<Input_t>&, int) [with Input_t = int; Node_t = Node; Query_t = std::pair<long long int, int>; bool push = true; bool break_conds = true]':
0_0_35986786_14068.cpp:220:62: required from here
0_0_35986786_14068.cpp:19:74: error: 'size' was not declared in this scope
segment_tree(const vector<Input_t>& a, int offset = 0): lim((int)size(a)) {
^
|