小编cha*_*par的帖子

BOOST_BINARY宏如何解析空格?

请考虑以下代码.

int value1 = BOOST_BINARY( 100 111000 01 1 110 );
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下BOOST_BINARY如何计算int值吗?

c++ macros boost

10
推荐指数
2
解决办法
1137
查看次数

现代应用程序消耗大量内存是否合理?

Microsoft Outlook和Eclipse IDE等应用程序占用RAM,高达200MB.现代应用程序是否可以消耗那么多内存,因为几年前我们只有256MB内存?另外,为什么会发生这种情况?我们认为资源是理所当然的吗?

memory-management

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

Vim正则表达式删除除最后两位数字之外的所有数字

我在文件中有以下文字

23456789
Run Code Online (Sandbox Code Playgroud)

当我尝试使用命令替换上面的文本

1,$s/\(\d\)\(\d\d\d\)\(\d\d\)*\>/\3\g
Run Code Online (Sandbox Code Playgroud)

我到了89.不应该6789吗?任何人都可以告诉我它为什么89.

regex vim

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

为什么将sockaddr_storage结构定义为定义方式?

以下是sockaddr_storage结构(rfc2553)的定义.根据rfc2553,sockaddr_storage应该与64位边界对齐,它应该能够同时保存sockaddr_in和sockaddr_in6.此外,它必须有at __ss_family成员.其余字段是实现定义的.

#define _SS_MAXSIZE    128  /* Implementation specific max size */
#define _SS_ALIGNSIZE  (sizeof (int64_t))
                         /* Implementation specific desired alignment */
/*
 * Definitions used for sockaddr_storage structure paddings design.
 */
#define _SS_PAD1SIZE   (_SS_ALIGNSIZE - sizeof (sa_family_t))
#define _SS_PAD2SIZE   (_SS_MAXSIZE - (sizeof (sa_family_t)+
                              _SS_PAD1SIZE + _SS_ALIGNSIZE))
struct sockaddr_storage {
    sa_family_t  __ss_family;     /* address family */
    /* Following fields are implementation specific */
    char      __ss_pad1[_SS_PAD1SIZE];
              /* 6 byte pad, this is to make implementation
              /* specific pad up to …
Run Code Online (Sandbox Code Playgroud)

c unix sockets

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

为什么我的带有非const引用的构造函数允许使用临时对象调用?

我在下面有一个示例代码.

#include<iostream>

template<typename T>
class XYZ
{
   private:
   T & ref;
   public:
   XYZ(T & arg):ref(arg)
   {
   }
};
class temp
{
   int x;
   public:
   temp():x(34)
   {
   }
};
template<typename T>
void fun(T & arg)
{
}
int main()
{
   XYZ<temp> abc(temp());
   fun(temp());  //This is a compilation error in gcc while the above code is perfectly valid. 
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,即使XYZ构造函数将参数作为非const引用,它也会很好地编译,而fun函数无法编译.这是特定于g ++编译器还是c ++标准必须要说些什么呢?

编辑:

g ++ -v给出了这个.

gcc版本4.5.2(Ubuntu/Linaro 4.5.2-8ubuntu4)

c++ most-vexing-parse

7
推荐指数
2
解决办法
394
查看次数

linux fcntl - unsetting flag

如何使用fcntl取消已设置的标志?

例如,我可以使用将套接字设置为非阻塞模式

fcntl(sockfd, F_SETFL, flags | O_NONBLOCK)
Run Code Online (Sandbox Code Playgroud)

现在,我想取消设置O_NONBLOCK标志.

我试过fcntl(sockfd,F_SETFL,flags | ~O_NONBLOCK).它给了我错误EINVAL

linux fcntl

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

严格别名是c还是c ++的东西?

在ISO/IEC 9899:TC2中,标准说如下

6.3.2.3指针

  1. 指向对象或不完整类型的指针可以转换为指向不同对象或不完整类型的指针.如果生成的指针未针对指向类型正确对齐,则行为未定义.否则,当再次转换回来时,结果将等于原始指针.当指向对象的指针转换为指向字符类型的指针时,结果指向对象的最低寻址字节.结果的连续增量(直到对象的大小)产生指向对象的剩余字节的指针.

因此,从标准中不清楚一种类型的指针可以被转换为另一种类型的指针.

c c++ casting strict-aliasing

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

在ruby中获取多维数组的维度

我刚开始学习红宝石.现在我需要弄清楚多维数组的维度.我查看了所有数组方法的ruby-docs,但我找不到返回维度的方法.

这是一个例子:

因为[[1, 2],[3,4],[5,6]]维度应该是2.

因为[[[1,2],[2,3]],[[3,4],[5]]],维度应为3.

ruby arrays

6
推荐指数
2
解决办法
5190
查看次数

用C++重构一个类

我有一个实现许多功能的A类.A级非常稳定.

现在我有一个新的功能要求,其中一些功能与A实现的功能匹配.我不能直接从A类继承我的新类,因为这会给我的新类带来很多冗余.

那么,我应该在两个类中复制公共代码吗?

或者,我应该创建一个新的基类并将公共代码移动到基类,并从中派生出A类和新类?但这会导致我现有课程的变化.

那么,哪种方法更好?

c++ refactoring

5
推荐指数
2
解决办法
1326
查看次数

模板实例化错误

我有模板功能"比较"定义如下.

#include<iostream>
using namespace std;

template<typename T>
void compare(const T&a, const T& b)
{
    cout<<"Inside compare"<<endl;
}

main()
{
compare("aa","bb");
compare("aa","bbbb");
}
Run Code Online (Sandbox Code Playgroud)

当我实例化比较相同长度的字符串文字时,编译器不会抱怨.当我用不同长度的文字做它时,它说"错误:没有匹配的调用比较函数(const char [3],const char [5])"

我很困惑,因为比较函数应该用字符指针而不是字符数组实例化.字符串文字不应该总是衰减到指针?

c++ templates

5
推荐指数
2
解决办法
263
查看次数