小编111*_*111的帖子

在std算法中否定boost is_directory

boost::filesystem::recursive_directory_iterator end, begin(directory);

auto num_of_files=std::count_if(begin, end, 
        std::not1(boost::filesystem::is_directory)));
Run Code Online (Sandbox Code Playgroud)

我试图在上面的目录迭代器上否定函数is_directory但是我遇到了一堵砖墙.我已经尝试为not1as 指定模板bool(*)(const boost::filesystem::path&)并尝试静态转换函数,但都没有成功.

我知道我可以诉诸lamdba但是如果它有效的话它会更干净.

谢谢

c++ boost negate c++11

2
推荐指数
1
解决办法
294
查看次数

使用过剩线程:glutPostRedisplay被忽略

我有一个程序,它更新程序输出,然后程序的状态发生变化.这种情况发生在当时的自动收报机(不是openGL计时器,在线程中实现的计时器)发生,以及从glut(使用glutKeyboardFunc回调)注册键盘输入时.

这两个事件都会更新程序状态并调用glutPostRedisplay; 问题只在于键盘按下时它实际上做了什么.当计时器滴答时,忽略显示功能,但是当按下键盘时,将调用显示功能.

过剩忽视其他线程吗?如果是这样,有办法让它注册它们.

opengl glut freeglut

2
推荐指数
1
解决办法
1423
查看次数

Javascript:XHR不处理多个异步请求

嗨我试图使用不同的参数多次访问一个资源

在这种情况下请求

    var domains = [
    'host1',
    'host2'
    ];

    var requests = new Array();

    for ( i in domains )
    {
        requests[i]=new request(domains[i]);
    }

    function request(site)
    {
        var url = 'get_remote_status.php?host='+site;
        var queues = {};
        http_request = new XMLHttpRequest();
        http_request.open("GET", url, true, 'username', 'password');
        http_request.onreadystatechange = function () {
            var done = 4, ok = 200;
            if (http_request.readyState == done && http_request.status == ok) {
                queues = JSON.parse(http_request.responseText);
                var queuesDiv = document.getElementById('queues');
                print_queues(queues, queuesDiv, site);              
            }
        };
        http_request.send(null);
    }
Run Code Online (Sandbox Code Playgroud)

但是,代码lambda只处理其中一个请求.Chromium报告已收到这两个请求,并且可以在资源窗格中查看这些请求. …

javascript ajax asynchronous xmlhttprequest

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

php simplexmlelement直接访问元素

我有一个简单的XML结构,当解析时会simplexml_load_string生成以下内容:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [token] => rs2rglql9c8ztem
        )

    [attachments] => SimpleXMLElement Object
        (
            [attachment] => 112979696
        )
)
Run Code Online (Sandbox Code Playgroud)

XML结构:

<uploads token="vwl3u75llktsdzi">
  <attachments>
    <attachment>123456789</attachment>
  </attachments>
</uploads>
Run Code Online (Sandbox Code Playgroud)

我可以通过迭代得到唯一真正重要的值“ 123456789”,但这是最喜欢的。有没有一种方法可以直接访问它,最好使用元素名称。

我需要能够理想地获得属性。

php simplexml

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

如何保护一个线程的数据初始化?

使用现代 C++,拥有由一个线程初始化的共享内存(第一个到达这一点,然后由多个线程读取)的最佳方法是什么?它需要尽可能轻。

int *ptr = nullptr;

void parallel_work() {
    // this should only done by the first thread to this point
    ptr = init_ptr();

    // all threads read After ptr is set 
    do_with(ptr);
}


int main() {
    std::thread th0 { &parallel_work };
    std::thread th1 { &parallel_work };
    std::thread th2 { &parallel_work };
    parallel_work();
}
Run Code Online (Sandbox Code Playgroud)

如果它可以帮助的话,我真的想避免将代码的整个读取部分包装在mutex.

PS:这不是static函数变量的用例,因为我将在程序的生命周期中创建其中的许多变量。

c++ mutex atomic stdatomic c++20

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