0

我目前正在尝试在“<<”和“>>”的字符串中使用双 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;
4

2 回答 2

0

我只是不明白这个说法:

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

看来您想要<<derpleft指向(存储)make<BitShiftLeft>调用返回的值。在那种情况下,为什么不简单地如下:

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

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

最重要的是,你没有提到问题是什么!

于 2012-12-08T05:56:46.593 回答
0

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

于 2013-01-09T21:29:17.470 回答