是否有任何适用于Vim 7.4的WORKING插件会自动关闭括号('{}','[]','()')并且可能会插入一些回车(至少为'{}')?
我知道这个问题已被问过很多次了,但是没有一个答案在vim 7.4中似乎没有用,或者插件没有更新或者什么的.
到目前为止,我已经尝试过vim-smartinput,autoclose和delimitmate,尽管我已经启用了插件,但它们中的NONE已设法插入任何结束字符,否则它们似乎处于活动状态.我不知道vim是否有某些变化会以某种方式破坏这些插件.这些插件似乎都没有至少在一年内更新.任何适用于vim 7.4的工作解决方案?
我对boost :: asio和boost :: asio :: serial_port设备有一个特殊的问题.代码最终与异步读取和东西很好地工作,但我无法弄清楚如何动态地改变串行端口的速度.
我现在要做的就是告诉连接在我的串口中的设备将串口速度改为38400波特,然后通过以下方式将我的计算机串口设置为相同的速度:
port_.set_option(boost::asio::serial_port_base::baud_rate(rate));
但真正发生的是,如果我执行set_option部分,设备永远不会收到更改速度的命令.如果我没有执行set_option部分,则设备会正确更改速度.从我收集的内容发生的事情是(阻塞,同步)写入将东西放入我的计算机上的硬件缓冲区并返回,然后执行丢弃缓冲区的set_option(在它有时间将数据发送到设备之前).因此,在重新配置计算机串口之前,我需要考虑一些方法来检查硬件缓冲区是否为空,并且设备确实已收到更改速度的命令.如果我必须在端口上执行close()和open()以使速度更改生效,我也找不到任何信息.我也想知道close()是否丢弃缓冲区中的东西......我正在使用USB->串口适配器,如果它有任何区别,我的平台是Ubuntu 10.10.
可以说我有一个元组
std::tuple<Operation<1>, Operation<2>, Operation<3>>。Operation<>具有带签名的成员函数SomeType someFunction(SomeType)。我想做的是依次调用操作,这样调用的结果顺序将是,Operation<3>::someFunction(Operation<2>::someFunction(Operation<1>::someFunction()))并且我将获得最终SomeType值。如何使用可变参数模板实现此目的(我可以访问C ++ 17)?
我可以使用调用每个成员函数,std::apply([](auto& ...x) { (..., x.someFunction()); }, tuple);但是我需要使用上一个调用someFunction()的输出来调用哪种表达式?