'make_pair'不能用作函数

MrR*_*ot9 -4 c++ std-pair c++14

这是我的完整代码:

  #include <iostream>
#include <vector>
#include <bits/stdc++.h> 

using namespace std;
#define ff first
#define mp make_pair

#define ss second


int main(void) {

    int m;
    vector <string> grid;

    cin >> m;

    pair <int,int> foo;
 pair <int,int> bar;


// bar =make_pair (10.5,'A');
foo = make_pair (1,2);
cout<<foo.ss<<endl;
    for(int i=0; i<m; i++) {
        string s; cin >> s;
        grid.push_back(s);
        int pp = s.find('p');
        int mp = s.find('m');
        if(pp>=0){
          bar = make_pair(pp,i);
        }
      cout<<pp<<endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的错误:

prog.cpp: In function 'int main()':
prog.cpp:40:32: error: 'make_pair' cannot be used as a function
            bar = make_pair(pp,i);
                                ^
Run Code Online (Sandbox Code Playgroud)

make_pair当我把它放在for循环中时会出现这个错误,如果我把它放在外面它会完全正常.我哪里错了?

编辑:我在codechef ide ... ...这些是输入

3
---
-m-
p--
Run Code Online (Sandbox Code Playgroud)

小智 8

#define mp make_pair
...
    int mp = s.find('m');
...
      bar = make_pair(pp,i);
Run Code Online (Sandbox Code Playgroud)

您声明make_pair为变量,隐藏了该函数.

解决这个问题,摆脱你可怕的宏定义.