问题列表 - 第37070页

具有私有成员的普通旧数据类型?

Demo是C++ 03中的POD类型吗?

struct Demo
{
     private:
       int x;
       int y;
};
Run Code Online (Sandbox Code Playgroud)

C++ 03,§9p4:

POD结构是一个聚合类,它没有非POD结构类型的非静态数据成员,非POD联合(或此类类型的数组)或引用,并且没有用户定义的副本赋值运算符,也没有用户定义的析构函数.

在阅读了Steve Jessop的帖子之后,我相信Demo是一个非POD因为成员是私人的.但是,标准没有说明POD类型和访问修饰符之间的关系.

在C++中,0x Demo是POD,因为§9p9(n3126)说:

POD结构是一个既简单类又是标准布局类的类,并且没有非POD结构类型的非静态数据成员,非POD联合(或此类类型的数组).

演示是微不足道的1以及标准布局类,所以它是一个POD.我的解释是否正确?

1一个普通的类是一个具有普通默认构造函数(12.1)并且可以轻易复制的类.[9p5,n3126]

c++ pod c++11

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

帮我理解NewExpression.Members

NewExpression.Members是否告知LINQ运行时如何将类型的构造函数参数映射到其属性?如果是这样,是否有一个属性来设置映射?我想象的是这样的:

public class Customer
{
  public Customer(int id, string name)
  {
    Id = id;
    Name = name;
  }

  [CtorParam("id")]
  public int Id { get; set; }

  [CtorParam("name")]
  public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但MSDN文档中没有一个真正告诉您如何准确地初始化成员.

c# linq

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

C#正则表达式以哪些词开头?

如何使用正则表达式来获取以! ?例如开头的单词!Test.

我尝试了这个,但它没有给出任何匹配:

@"\B\!\d+\b"
Run Code Online (Sandbox Code Playgroud)

虽然它没有工作时,我更换了!$.

c# regex

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

如何在启动时自动加载别名?

我想添加alias ll = "ls -l",我想知道每次登录linux时如何加载它.

linux

12
推荐指数
3
解决办法
2万
查看次数

将C++中的浮点数舍入到一个小数位

我在c ++中有一个浮点数,数字可以是不同的形式,例如355.5或9.9(这是测试代码的输入).

我有一个功能

float return_max(angle_set_t *angles)  
{  
    float val;  
    float max;  
    max= angles->key;  
    while( angles != NULL )  
    {  
        val= angles->key;  
        if(max<=val)  
        {  
            max=val;  
        }  
        angles = angles->right;  
    }       
    return max;
}  
Run Code Online (Sandbox Code Playgroud)

max可以是浮点值.我想将值舍入到一个小数位.

我需要一个通用的解决方案,因此适用于355.555555和9.999999

float first_aset()
{
    //do somethig
    result=return_max();
    return result;
}

void main()
{
    if( first_aset(S, 357.0, 20.0 ) != 9.9 ||
        first_aset(T, 357.0, 20.0 ) != 9.9 )
    {
         printf("Error in wrap-around interval (3)\n");
         printf(" first in interval [357, 20) in S is %f, should be …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point

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

我们如何使用Go中的通道代替互斥锁?

通道将通信 - 值的交换 - 与同步相结合 - 保证两个计算(goroutine)处于已知状态.

如何使用Google Go中的频道执行互斥锁功能?

package main

import "sync"

var global int = 0
var m sync.Mutex

func thread1(){
    m.Lock()
    global = 1
    m.Unlock()
}

func thread2(){
    m.Lock()
    global = 2
    m.Unlock()
}

func main(){
   go thread1()
   go thread2()
}
Run Code Online (Sandbox Code Playgroud)

go goroutine

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

平衡的B树是如何平衡的

假设我有一个带有3-4个配置节点的B树(3个元素和4个指针).假设我根据规则合法地构建了我的树,我是否有可能达到一个层中有两个节点而一个节点有4个退出指针而另一个节点只有两个退出指针的情况?

一般来说,我对正确使用的B树的平衡性有什么保证

b-tree

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

用于可转换UILocalNotification的自定义核心数据访问器

我的一个实体上有一个可转换的属性,称为提醒.这是一个UILocalNotification.

现在,因为我想在添加它时安排它,并在删除时取消它,我想覆盖访问器来处理调度和取消.

那怎么样?

谢谢!

iphone core-data objective-c

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

线程如何访问父线程的变量

我读到线程共享它的父线程的内存地址空间.如果这是真的,为什么线程函数不能访问属于它的父线程的局部变量?

void* PrintVar(void* arg){
   printf( "%d\n", a);
}

int main(int argc, char*argv[]) {
   int a;
   a = 10;
   pthread_t thr;
   pthread_create( &thr, NULL, PrintVar, NULL );

}
Run Code Online (Sandbox Code Playgroud)

如果线程共享地址空间,那么PrintVar函数应该能够打印出来的值variable a吧?

我在http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html上阅读了这条信息.

同一进程中的线程共享:进程指令大多数数据打开文件(描述符)信号和信号处理程序当前工作目录用户和组ID

如果这是真的,那么为什么int a不能作为共享变量?

我想看一个共享文件描述符的示例代码

multithreading pthreads shared-memory

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

如何在非阻塞套接字上处理OpenSSL SSL_ERROR_WANT_READ/WANT_WRITE

OpenSSL库允许使用SSL_read从底层套接字读取并使用SSL_write写入它.这些函数可能会返回SSL_ERROR_WANT_READ或SSL_ERROR_WANT_WRITE,具体取决于它们的ssl协议需求(例如,重新协商连接时).

我真的不明白API要求我对这些结果做些什么.

对接受客户端连接的服务器应用程序进行映像,设置新的ssl会话,使底层套接字无阻塞,然后将filedescriptor添加到select/poll/epoll循环.

如果客户端发送数据,主循环将把它发送到ssl_read.如果返回SSL_ERROR_WANT_READ或SSL_ERROR_WANT_WRITE,必须在此处执行什么操作?WANT_READ可能很简单,因为下一个主循环迭代可能只会导致另一个ssl_read.但是如果ssl_read返回WANT_WRITE,应该调用哪些参数?为什么图书馆不发出呼叫呢?

如果服务器想要向客户端发送一些数据,它将使用ssl_write.同样,如果返回WANT_READ或WANT_WRITE,该怎么办?可以通过重复刚刚调用的同一个调用来回答WANT_WRITE吗?如果返回WANT_READ,是否应该返回主循环并让select/poll/epoll处理这个问题?但是首先应该写的信息呢?

或者应该在写入失败后立即完成读取?那么,当真正的解析器位于主循环中时,什么可以防止从应用程序协议中读取字节,然后在应用程序的郊区某处处理它?

sockets linux openssl

37
推荐指数
3
解决办法
3万
查看次数