bridges.cpp: In instantiation of 'rollback_array<T>::rollback_array(int) [with T = int]':
bridges.cpp:87:46: required from here
bridges.cpp:59:9: warning: 'rollback_array<int>::n' will be initialized after [-Wreorder]
int n;
^
bridges.cpp:58:15: warning: 'std::vector<int> rollback_array<int>::arr' [-Wreorder]
vector<T> arr;
^~~
bridges.cpp:61:5: warning: when initialized here [-Wreorder]
rollback_array(int n) : n(n), arr(n){};
^~~~~~~~~~~~~~
bridges.cpp: In function 'int main()':
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:122:12: note: in expansion of macro 'sd'
int n, m; sd(n); sd(m);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:122:19: note: in expansion of macro 'sd'
int n, m; sd(n); sd(m);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:125:3: note: in expansion of macro 'sd'
sd(a[i]); sd(b[i]); sd(w[i]);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:125:13: note: in expansion of macro 'sd'
sd(a[i]); sd(b[i]); sd(w[i]);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:125:23: note: in expansion of macro 'sd'
sd(a[i]); sd(b[i]); sd(w[i]);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:129:9: note: in expansion of macro 'sd'
int q; sd(q);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:131:3: note: in expansion of macro 'sd'
sd(type[i]); sd(s[i]); sd(w[i + m]);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:131:16: note: in expansion of macro 'sd'
sd(type[i]); sd(s[i]); sd(w[i + m]);
^~
bridges.cpp:5:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
#define sd(x) scanf("%d", &(x))
~~~~~^~~~~~~~~~~~
bridges.cpp:131:26: note: in expansion of macro 'sd'
sd(type[i]); sd(s[i]); sd(w[i + m]);
^~