小编And*_*iov的帖子

在emacs中可以快速(重复)撤消吗?

我使用emacs,我有一个问题,它的撤消.

(对不起,也许这是一个愚蠢的问题,但我没有在互联网上找到任何关于它的信息,而它应该是任何编辑器的基本功能).

要调用每个撤消步骤,我需要按"Ctrl-x"然后按"u".但是如果我已经完成了200步并希望撤消它们,我的手和手指会因重复'Ctrl-x'然后'u'200次而感到非常痛苦,更不用说这个操作需要大约5分钟.

例如,在Microsoft Word中(以及许多其他编辑器中)撤消是Ctlr-Z,但您可以按住Ctlr-Z并快速运行多个撤消步骤.这在emacs中是否可以实现?

emacs editor undo

14
推荐指数
2
解决办法
3099
查看次数

使用urllib2加载URL时如何设置TCP_NODELAY标志?

我使用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)

python sockets urllib2 setsockopt urlopen

13
推荐指数
2
解决办法
8667
查看次数

std::future_error:没有关联的状态

我对 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)

c++ multithreading future promise c++11

8
推荐指数
1
解决办法
1万
查看次数

使用lighttpd Web服务器时,$ _GET和$ _POST变量不存在

我在我的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)

php post get lighttpd

7
推荐指数
1
解决办法
3425
查看次数

QuickFix错误:标签在"W"消息中出现多次

我从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)

quickfix fix-protocol

7
推荐指数
1
解决办法
3247
查看次数

在c ++ 11中将指针传递给临时?

我有一个现有的功能:

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)

但是这个对象不会被删除.

c++ temporary-objects c++11 c++14 c++17

7
推荐指数
3
解决办法
956
查看次数

如何在IE以外的浏览器中旋转JavaScript中的image/div

我需要按照用户指定的角度动态旋转图像.

我使用以下代码,但它只适用于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)

javascript image rotation

4
推荐指数
1
解决办法
3371
查看次数

更改UNIX进程的系统时间?

我需要测试使用系统时间的C ++程序。该程序很大,它使用第三方库,该库也可能占用系统时间。

我想看看我的程序在不同日期/时间的表现。

是否可以仅在UNIX中更改一个正在运行的进程的系统时间?

非常感谢...

unix time timezone datetime process

4
推荐指数
2
解决办法
1535
查看次数

为什么在访客模式中需要accept(),为什么不能直接调用visitor.visit()?

我正在修改我前段时间使用的访客模式。我们有基类 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()的好处吗?

c++ design-patterns double-dispatch visitor-pattern

4
推荐指数
1
解决办法
1677
查看次数

C++:对象切片和异常

在一次采访中,我被问到为什么按价值捕获异常可能是一个问题,我回答说这会导致对象切片.这就是我在互联网上找到的,例如: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)

c++ exception-handling exception rethrow object-slicing

3
推荐指数
1
解决办法
143
查看次数

为什么抛出作为引用的异常调用复制构造函数?

为什么抛出作为引用的异常调用复制构造函数?

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++ exception copy-constructor throw

0
推荐指数
1
解决办法
103
查看次数