输入字符串C ++双V形

时间:2012-12-08 02:15:08

标签: c++ visual-c++ shunting-yard

我正在尝试在字符串中使用双V形符号“<<”和“>>”表示位移。但是,我的程序似乎无法识别任何输入使用双V形。如果我将其更改为任何其他字符串,它将完美运行。

derpleft会起作用,但是“<<”不管用。

keywords_["derpleft"]  = keywords_["<<"] = make<BitShiftLeft>();
keywords_["derpright"] = keywords_[">>"] =  make<BitShiftRight>();

dictionary_type keywords_;

typedef std::map<string_type,Token::pointer_type>   dictionary_type;

typedef std::string string_type;

2 个答案:

答案 0 :(得分:0)

我只是不明白这句话:

keywords_["derpleft"]  = keywords_["<<"] = make<BitShiftLeft>();

您似乎希望<<derpleft指向(存储)make<BitShiftLeft>调用返回的值。在这种情况下,为什么不简单地如下:

keywords_["derpleft"]  = make<BitShiftLeft>();
keywords_["<<"] =  make<BitShiftLeft>();

您可以将make调用的值存储在某个局部变量中(auto首选关键字)。

最重要的是,你没有提到问题所在!

答案 1 :(得分:0)

我忘了关闭这个帖子,但问题是我没有在我的一个编辑器函数中将布尔值设置为true。这只是我创建的逻辑错误。