Language: C++

#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <array>
#include <stack>
#include <list>
#include <queue>
#include <deque>
#include <climits>
#include <utility>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <set>
#include <complex>
#include <numeric>

#include <time.h>
#include <float.h>

#define loop(i, start, end) for(int i = (start); i <= (end); i++)
#define loopRev(i, start, end) for(int i = (start); i >= (end); i--)
#define FLASH ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define testCases(t) cin >> t; while(t--)
#define PN(n) cout << (n)
#define PN1(n) cout << (n) << " "
#define PN2(a, b) cout << (a) << " " << (b) << " "
#define PN3(a, b, c) cout << (a) << " " << (b) << " " << (c) << " "
#define PNN1(n) cout << (n) << endl
#define PNN2(a, b) cout << (a) << " " << (b) << endl
#define PNN3(a, b, c) cout << (a) << " " << (b) << " " << (c) << endl
#define PrintObject(ar) for(auto var: ar) cout << var << " "; cout << endl
#define PrintMap(map) for(auto var: map) PNN2(var.first, var.second)
#define IN1(n) cin >> n
#define IN2(a, b) cin >> a >> b
#define IN3(a, b, c) cin >> a >> b >> c
#define ALL(s) s.begin(), s.end()
#define ENTER PNN1("")
#define llPair std::pair<lli, lli>
#define iiPair std::pair<int, int>
// #define ONLINE_JUDGE

typedef long long int lli;
typedef long int li;
typedef unsigned long long int ulli;
typedef long double ld;

using namespace std;

template <typename T>
T ii() {
	T a;
	IN1(a);
	return a;
}

int main(void){
	FLASH
	#ifndef ONLINE_JUDGE
		freopen("input-stream.txt", "r", stdin);
		freopen("output-stream.txt", "w", stdout);
	#endif

	lli a, b;
	IN2(a, b);
	IN1(a * b);

	return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:39:20: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'lli' {aka 'long long int'})
   39 | #define IN1(n) cin >> n
      |                ~~~ ^~
      |                |
      |                std::istream {aka std::basic_istream<char>}
a.cc:71:9: note: in expansion of macro 'IN1'
   71 |         IN1(a * b);
      |         ^~~
In file included from /usr/include/c++/14/iostream:42,
                 from a.cc:1:
/usr/include/c++/14/istream:170:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  170 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:170:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:174:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  174 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:174:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'short int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:177:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  177 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:177:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'short unsigned int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:181:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  181 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:181:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:184:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  184 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:184:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'unsigned int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:188:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  188 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:188:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'long int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:192:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  192 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:192:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'long unsigned int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  199 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:199:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'long long int&' to an rvalue of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:203:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  203 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:203:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'long long unsigned int&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:219:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  219 |       operator>>(float& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:219:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'float&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:223:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  223 |       operator>>(double& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:223:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'double&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:227:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  227 |       operator>>(long double& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:227:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: cannot bind non-const lvalue reference of type 'long double&' to a value of type 'lli' {aka 'long long int'}
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:328:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  328 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/14/istream:328:7: note:   conversion of argument 1 would be ill-formed:
a.cc:71:15: error: invalid conversion from 'lli' {aka 'long long int'} to 'void*' [-fpermissive]
   71 |         IN1(a * b);
      |             ~~^~~
      |               |
      |               lli {aka long long int}
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
a.cc:71:15: error: cannot bind rvalue '(void*)(a * b)' to 'void*&'
   71 |         IN1(a * b);
      |             ~~^~~
a.cc:39:23: note: in definition of macro 'IN1'
   39 | #define IN1(n) cin >> n
      |                       ^
/usr/include/c++/14/istream:122:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__ist