"myStateType"未在此范围内声明,原因 #typedef

'myStateType' was not declared in this scope caused by #typedef

本文关键字:原因 #typedef 声明 myStateType 范围内      更新时间:2023-10-16

为了方便使用,我尝试使用 #typedef 将类型声明为我自己的自定义名称:

class Solution {
public:
    void dfs(vector<vector<char>>& board, int i, int j)
    {
        using namespace std;
        #typedef std::pair<int, int> myStateType;
        std::queue<myStateType> q; // error on this line
        ...
    }
};

但是,此行指示的编译错误std::queue<myStateType> q;

"myStateType"未在此范围内声明

我仍然没有弄清楚这个错误是如何发生的?有什么想法吗?提前感谢!

typedef是C和C++编程语言中的编译器令牌,而不是MACRO。

typedef std::pair<int,int> myStateType; // don't put # before
std:queue<myStateType> q;
"myStateType

"未在此范围内声明:表示您的程序不知道类型:myStateType