0_0_35986788_19924.cpp:11:37: error: expected ',' before ')' token
static_assert(push || !break_conds);
^
0_0_35986788_19924.cpp:11:37: error: expected string-literal before ')' token
0_0_35986788_19924.cpp: In member function 'void segment_tree<Node_t, Query_t, push, break_conds>::update(int, int, int, int, int, const Args& ...)':
0_0_35986788_19924.cpp:47:8: error: expected '(' before 'constexpr'
if constexpr (break_conds) assert(i < length);
^
0_0_35986788_19924.cpp:48:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.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_35986788_19924.cpp:66:8: error: expected '(' before 'constexpr'
if constexpr (break_conds) assert(i < length);
^
0_0_35986788_19924.cpp:67:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.cpp: In member function 'void segment_tree<Node_t, Query_t, push, break_conds>::update_point(int, int, int, int, const Args& ...)':
0_0_35986788_19924.cpp:84:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.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_35986788_19924.cpp:99:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.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_35986788_19924.cpp:113:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.cpp: In member function 'int segment_tree<Node_t, Query_t, push, break_conds>::search_left(int, int, int, int, int, std::tuple<Args& ...>)':
0_0_35986788_19924.cpp:131:53: error: missing template arguments before '(' token
&& !apply(&Node_t::contains, tuple_cat(tuple(data[i]), args))) return -1;
^
0_0_35986788_19924.cpp:133:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.cpp: In member function 'int segment_tree<Node_t, Query_t, push, break_conds>::search_right(int, int, int, int, int, std::tuple<Args& ...>)':
0_0_35986788_19924.cpp:149:53: error: missing template arguments before '(' token
&& !apply(&Node_t::contains, tuple_cat(tuple(data[i]), args))) return -1;
^
0_0_35986788_19924.cpp:151:8: error: expected '(' before 'constexpr'
if constexpr (push) data[i].push(data[2*i], data[2*i + 1]);
^
0_0_35986788_19924.cpp: At global scope:
0_0_35986788_19924.cpp:163:30: error: 'numeric_limits' was not declared in this scope
static constexpr int inf = numeric_limits<int>::max();
^
0_0_35986788_19924.cpp:163:45: error: expected primary-expression before 'int'
static constexpr int inf = numeric_limits<int>::max();
^
0_0_35986788_19924.cpp:163:44: error: expected ';' at end of member declaration
static constexpr int inf = numeric_limits<int>::max();
^
0_0_35986788_19924.cpp:163:48: error: expected unqualified-id before '>' token
static constexpr int inf = numeric_limits<int>::max();
^
0_0_35986788_19924.cpp:202: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_35986788_19924.cpp:161:8: note: 'Node' is not literal because:
struct Node {
^
0_0_35986788_19924.cpp:161: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_35986788_19924.cpp: In member function 'Node::T Node::get() const':
0_0_35986788_19924.cpp:177:30: error: missing template arguments before '(' token
T get() const { return pair(sum, maxv); }
^
0_0_35986788_19924.cpp: In static member function 'static Node::T Node::default_value()':
0_0_35986788_19924.cpp:203:41: error: missing template arguments before '(' token
static T default_value() { return pair(0, -1); }
^
0_0_35986788_19924.cpp: In static member function 'static Node::T Node::merge(const T&, const T&)':
0_0_35986788_19924.cpp:205:16: error: missing template arguments before '(' token
return pair(a.first + b.first, max(a.second, b.second));
^
0_0_35986788_19924.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_35986788_19924.cpp:223:62: required from here
0_0_35986788_19924.cpp:22:74: error: 'size' was not declared in this scope
segment_tree(const vector<Input_t>& a, int offset = 0): lim((int)size(a)) {
^
|