我正在尝试在字符串中使用双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;
答案 0 :(得分:0)
我只是不明白这句话:
keywords_["derpleft"] = keywords_["<<"] = make<BitShiftLeft>();
您似乎希望<<
和derpleft
指向(存储)make<BitShiftLeft>
调用返回的值。在这种情况下,为什么不简单地如下:
keywords_["derpleft"] = make<BitShiftLeft>();
keywords_["<<"] = make<BitShiftLeft>();
您可以将make
调用的值存储在某个局部变量中(auto
首选关键字)。
最重要的是,你没有提到问题所在!
答案 1 :(得分:0)
我忘了关闭这个帖子,但问题是我没有在我的一个编辑器函数中将布尔值设置为true。这只是我创建的逻辑错误。