小编mor*_*nvp的帖子

理解set/getsockopt SO_SNDBUF

嗨,我有以下程序来检查UDP套接字的发送缓冲区大小.但是,我的返回值对我来说有点混乱.我使用以下简单的应用程序:

#include <sys/socket.h>
#include <stdio.h>

int main(int argc, char **argv)
{
 int sockfd, sendbuff;
 socklen_t optlen;

 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
 if(sockfd == -1)
     printf("Error");

 int res = 0;

 // Get buffer size
 optlen = sizeof(sendbuff);
 res = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &sendbuff, &optlen);

 if(res == -1)
     printf("Error getsockopt one");
 else
     printf("send buffer size = %d\n", sendbuff);

 // Set buffer size
 sendbuff = 98304;

 printf("sets the send buffer to %d\n", sendbuff);
 res = setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &sendbuff, sizeof(sendbuff));

 if(res == -1) …
Run Code Online (Sandbox Code Playgroud)

c sockets

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

用提升精神解析一对整体

我有以下代码:

std::string test("1.1");
std::pair<int, int> d;

bool r = qi::phrase_parse(
        test.begin(),
        test.end(),
        qi::int_ >> '.' >> qi::int_,
        space,
        d
        );
Run Code Online (Sandbox Code Playgroud)

所以我试图解析字符串测试并将结果放在std :: pair d中.但是它没有用,我怀疑它与复合属性规则有关.

有关如何使其工作的任何提示?

编译器错误如下:

错误:没有匹配函数来调用'std :: pair :: pair(const int&)'

c++ parsing boost boost-spirit

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

排序百分比列表

我有以下列表:

l = ['50%','12.5%','6.25%','25%']
Run Code Online (Sandbox Code Playgroud)

我想按以下顺序排序:

['6.25%','12.5%','25%','50%']
Run Code Online (Sandbox Code Playgroud)

使用l.sort()产生:

['12.5%','25%','50%','6.25%']
Run Code Online (Sandbox Code Playgroud)

在Python中轻松排序这些列表的任何很酷的技巧?

python sorting list

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

带有调用运算符的std :: bind on member

这可能是一个愚蠢和愚蠢的事情 - 但我想了解这里发生了什么.

我有以下代码:

#include <iostream>
#include <functional>

namespace
{
    struct call
    {
        void operator()() const
        {
            std::cout << "call::operator()" << std::endl;
        }
    };

    struct dummy
    {
        dummy() = default;
        dummy(const dummy&) = delete;

        call member;
    }; 
}
Run Code Online (Sandbox Code Playgroud)

因此,member本质上可以像任何其他对象方法一样工作,允许它被调用为:

dummy d;
d.member()
Run Code Online (Sandbox Code Playgroud)

哪个会打印call::operator().

现在我想使用bind来做到这一点,初始实现看起来像这样:

int main() 
{
    dummy d;

    auto b = std::bind(&dummy::member, &d);
    b();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译,但没有打印.我真的不明白发生了什么 - 它编译的事实,但产生没有输出困惑我:)当然一些魔法正在肚子里面std::bind,但是什么?

以下是使用代码的链接:https: //ideone.com/P81PND

c++ c++11

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

没有针对ARM NEON的xor gcc内在函数

我找不到任何简单的xor操作的内在函数.

请参阅:http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html

真的没有办法使用NEON指令吗?

gcc arm intrinsics neon

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

标签 统计

c++ ×2

arm ×1

boost ×1

boost-spirit ×1

c ×1

c++11 ×1

gcc ×1

intrinsics ×1

list ×1

neon ×1

parsing ×1

python ×1

sockets ×1

sorting ×1