我使用emacs,我有一个问题,它的撤消.
(对不起,也许这是一个愚蠢的问题,但我没有在互联网上找到任何关于它的信息,而它应该是任何编辑器的基本功能).
要调用每个撤消步骤,我需要按"Ctrl-x"然后按"u".但是如果我已经完成了200步并希望撤消它们,我的手和手指会因重复'Ctrl-x'然后'u'200次而感到非常痛苦,更不用说这个操作需要大约5分钟.
例如,在Microsoft Word中(以及许多其他编辑器中)撤消是Ctlr-Z,但您可以按住Ctlr-Z并快速运行多个撤消步骤.这在emacs中是否可以实现?
我使用urllib2加载网页,我的代码是:
httpRequest = urllib2.Request("http:/www....com")
pageContent = urllib2.urlopen(httpRequest)
pageContent.readline()
Run Code Online (Sandbox Code Playgroud)
如何获取要设置的套接字属性TCP_NODELAY?
在普通的套接字我会使用函数:
socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
Run Code Online (Sandbox Code Playgroud) 我对 C++ 11 future/promise 有疑问。下面的代码工作正常:
string s = "not written";
void write(promise<void>&& writePromise)
{
cout << "\nwrite()" << endl;
this_thread::sleep_for(chrono::seconds(1));
s = "written";
writePromise.set_value();
}
void read(future<void>&& readFut)
{
cout << "read(), waiting..." << flush;
readFut.wait();
cout << "\ns: '" << s << "'" << endl;
}
int main()
{
promise<void> writePromise;
future<void> writeFuture = writePromise.get_future();
thread tWrite(write, move(writePromise));
thread tRead(read, move(writeFuture));
tWrite.join();
tRead.join();
}
Run Code Online (Sandbox Code Playgroud)
但是一旦我将 main() 更改为:
int main()
{
promise<void> writePromise;
thread tWrite(write, move(writePromise));
thread tRead(read, move(writePromise.get_future()));
tWrite.join(); …Run Code Online (Sandbox Code Playgroud) 我在我的Windows计算机上安装lighttpd的Web服务器和我有一个问题:在PHP文件没有$_GET和$_POST变量定义.
例如,我有这个简单的脚本(tmp.php):
<?php
echo "x: '" . $_GET ['x'] . "'<br />";
?>
Run Code Online (Sandbox Code Playgroud)
当我去地址时: http://localhost/tmp.php?x=123
我收到此错误消息:
Notice: Undefined index: x in /srv/www/htdocs/tmp.php on line 3 x: ''
Run Code Online (Sandbox Code Playgroud)
当我把相同的文件放在公共托管上时,我得到:
x: '123'
Run Code Online (Sandbox Code Playgroud)
还有php命令:
empty ($_GET)
Run Code Online (Sandbox Code Playgroud)
返回true.
所有$ _POST变量都是一样的.
我的php.ini文件中是否有任何错误配置?
命令:
print_r($_SERVER);
Run Code Online (Sandbox Code Playgroud)
给出以下结果:
Array (
[SERVER_SOFTWARE] => lighttpd/1.4.20
[SERVER_NAME] => localhost
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[SERVER_PORT] => 80
[SERVER_ADDR] => 0.0.0.0
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[QUERY_STRING] => x=123
[REQUEST_URI] => /tmp.php?x=123 …Run Code Online (Sandbox Code Playgroud) 我从FIX服务器收到以下"W"消息:
8=FIX.4.2|9=141|35=W|34=98|49=CX|52=20150401-09:12:30.247|56=CACIB_MD2|55=608230|262=48|9883=IDB|268=2|269=0|58=No Bid Available|269=1|58=No Offer Available|10=249
Run Code Online (Sandbox Code Playgroud)
标签58两次
我的QuickFix应用程序自动将拒绝消息发送到服务器:
8=FIX.4.2|9=104|35=3|34=91|49=CACIB_MD2|52=20150401-09:12:29.661|56=CX|45=90|58=Tag appears more than once|371=58|372=W|10=008
Run Code Online (Sandbox Code Playgroud)
从互联网阅读中我了解到字典存在问题.
我的QuickFix配置文件中没有任何字典配置.我不确定默认字典所在的位置,但我发现(FIX42.xml)定义了标记58是"W"消息的组的一部分:
<message name='MarketDataSnapshotFullRefresh' msgcat='app' msgtype='W'>
<field name='MDReqID' required='N' />
<field name='Symbol' required='Y' />
<field name='SymbolSfx' required='N' />
<field name='SecurityID' required='N' />
<field name='IDSource' required='N' />
<field name='SecurityType' required='N' />
<field name='MaturityMonthYear' required='N' />
<field name='MaturityDay' required='N' />
<field name='PutOrCall' required='N' />
<field name='StrikePrice' required='N' />
<field name='OptAttribute' required='N' />
<field name='ContractMultiplier' required='N' />
<field name='CouponRate' required='N' />
<field name='SecurityExchange' required='N' />
<field name='Issuer' required='N' />
<field …Run Code Online (Sandbox Code Playgroud) 我有一个现有的功能:
void foo(const Key* key = nullptr)
{
// uses the key
}
Run Code Online (Sandbox Code Playgroud)
我想将它指向临时Key对象(即rvalue),如:
foo(&Key());
Run Code Online (Sandbox Code Playgroud)
这会导致编译错误,但是在c ++ 11/14中有一种方法可以做到这一点吗?我当然可以这样做:
Key key;
foo(&key);
Run Code Online (Sandbox Code Playgroud)
但我不需要对象Key,我只需要它在foo()和foo()中
或者我可以这样做:
foo(new Key());
Run Code Online (Sandbox Code Playgroud)
但是这个对象不会被删除.
我需要按照用户指定的角度动态旋转图像.
我使用以下代码,但它只适用于IE而不适用于任何其他浏览器.
<div id="frame1" style="overflow:hidden" width='300' height='300'>
<div id="frame2" width='200' height='200'>
<img src='1.jpeg'' id='im' src='1.jpeg' width='10' height='10'>
</div>
</div>
<script type="text/javascript">
rotate(frame2, 45);
function rotate (elem, deg)
{
if (navigator.appName=='Microsoft Internet Explorer')
{
rad = deg*Math.PI/180;
elem.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11='1.0', sizingmethod='auto expand')";
elem.filters.item(0).M11 = Math.cos(rad);
elem.filters.item(0).M12 = -Math.sin(rad);
elem.filters.item(0).M21 = Math.sin(rad);
elem.filters.item(0).M22 = Math.cos(rad);
elem.style.marginLeft=((canvsize-elem.offsetWidth)/2)+'px'
elem.style.marginTop=((canvsize-elem.offsetHeight)/2)+'px'
}
else
{
elem.style.MozTransform = 'rotate(' + deg + ')';
elem.style.WebkitTransform = 'rotate(' + deg + ')';
elem.style.OTransform = 'rotate(' + deg + ')';
elem.style.MsTransform = 'rotate(' …Run Code Online (Sandbox Code Playgroud) 我需要测试使用系统时间的C ++程序。该程序很大,它使用第三方库,该库也可能占用系统时间。
我想看看我的程序在不同日期/时间的表现。
是否可以仅在UNIX中更改一个正在运行的进程的系统时间?
非常感谢...
我正在修改我前段时间使用的访客模式。我们有基类 Element,它具有虚方法accept(Visitor),并且该方法在继承自 Element 的所有类中被重写。在任何派生类中accept()所做的就是调用visitor->visit(*this)。现在,当客户端运行代码时,他/她会执行以下操作:
Visitor& theVisitor = *new ConcreteVisitor();
for_each(elements.begin(), elements.end(), [](Element& e) { e.accept(theVisitor));})
Run Code Online (Sandbox Code Playgroud)
为什么客户端不能像这样调用visitor->visit(element):
Visitor& theVisitor = *new ConcreteVisitor();
for_each(elements.begin(), elements.end(), [&theVisitor](Element& e) { theVisitor.visit(e); });
Run Code Online (Sandbox Code Playgroud)
调用 element.accept(visitor) 进而调用 guest.visit(element) 时有哪些有用的信息?这使得访问者模式的使用变得很麻烦,并且需要在 Element 类的所有层次结构中添加额外的代码。
那么有人可以在这里解释一下accept()的好处吗?
在一次采访中,我被问到为什么按价值捕获异常可能是一个问题,我回答说这会导致对象切片.这就是我在互联网上找到的,例如:https://www.viva64.com/en/w/v746/
但是现在我正在尝试进行实验,但是在按值捕获时我找不到切片的示例.切片的常规场景(不是例外)是这样的:
Derived d1;
Derived d2;
Base& b1 = d1;
Base& b2 = d2;
b1 = b2;
Run Code Online (Sandbox Code Playgroud)
在最后一行中调用Base的赋值运算符,它只复制Derived对象的Base部分.因此,b1的基础部分是从d2复制的,而b1的派生部分是从d2复制的.坏.
但是,当按价值捕获异常时,这怎么会发生?
我尝试了这个代码(同时使用:g ++和Sun CC编译器):
struct Base
{
virtual void print() const
{
cout << "{ Base: " << m << " }" << endl;
}
Base(int _m = 0) : m(_m) {}
int m;
};
struct Derived : Base
{
Derived(int _m = 0, int _n = 0) : Base(_m), n(_n) {}
void print() const
{
cout << "{ …Run Code Online (Sandbox Code Playgroud) 为什么抛出作为引用的异常调用复制构造函数?
struct Error
{
Error() {}
Error(const Error&) = delete;
};
int main()
{
Error& error = *new Error;
throw error;
}
Run Code Online (Sandbox Code Playgroud)
编译错误:
error: declared here
Error(const Error&) = delete;
Run Code Online (Sandbox Code Playgroud)
投掷指针时不会发生这种情况:
int main()
{
Error* error = new Error;
throw error;
}
Run Code Online (Sandbox Code Playgroud)
还行吧.
c++ ×5
c++11 ×2
exception ×2
c++14 ×1
c++17 ×1
datetime ×1
editor ×1
emacs ×1
fix-protocol ×1
future ×1
get ×1
image ×1
javascript ×1
lighttpd ×1
php ×1
post ×1
process ×1
promise ×1
python ×1
quickfix ×1
rethrow ×1
rotation ×1
setsockopt ×1
sockets ×1
throw ×1
time ×1
timezone ×1
undo ×1
unix ×1
urllib2 ×1
urlopen ×1