当我在写一个动态开店线段树
想要用三目运算符时
struct LSGT
{
int P;
struct Node
{
int l, r;
int dat, id;
#define l(x) sgt[x].l
#define r(x) sgt[x].r
#define dat(x) sgt[x].dat
#define id(x) sgt[x].id
#define ls (p << 1)
#define rs (ls | 1)
}sgt[NlogN * 4];
void insert(int p, int l, int r, int pos, int val)
{
if (l == r) return dat(p) += val, void();
int mid = (l(p) + r(p)) >> 1;
if (pos <= mid) l(p) ? (insert(ls, l, mid, pos, val)) : (l(p) = (++ P));
else r(p) ? (insert(rs, mid + 1, r, pos, val)) : (r(p) = (++ P));
}
};
(l(p) = (++ P));给我报错了