问题列表 - 第30728页

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

const字段的复杂初始化

考虑像这样的一个类:

class MyReferenceClass
{
public:
    MyReferenceClass();
    const double ImportantConstant1;
    const double ImportantConstant2;
    const double ImportantConstant3;
private:
    void ComputeImportantConstants(double *out_const1, double *out_const2, double *out_const3);
}
Run Code Online (Sandbox Code Playgroud)

有一个例程(ComputeImportantConstants)在运行时计算三个常量.假设计算相当复杂,并且固有地一次产生所有三个值.此外,结果取决于构建配置,因此硬编码结果不是一种选择.

有没有一种合理的方法将这些计算值存储在类的相应const双字段中?

如果没有,你能建议一种更自然的方式在C++中声明这样的类吗?

在C#中,我会在这里使用带有静态构造函数的静态类,但这不是C++中的一个选项.我也考虑过使用非const字段或函数调用使ImportantConstant1..3,但两者都显得逊色.

我发现初始化const字段的唯一方法是使用初始化列表,但似乎不可能在这样的列表中传递多输出计算的结果.

c++ initialization const ctor-initializer

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

如何处理临时NSManagedObject实例?

我需要创建NSManagedObject实例,用它们做一些事情,然后将它们丢弃或存储到sqlite db.问题是,我无法创建NSManagedObject未连接的实例,NSManagedObjectContext这意味着在我决定不需要我的数据库中的某些对象后,我必须以某种方式清理.

为了解决这个问题,我使用相同的协调器创建了一个内存存储,并且我使用assignObject:toPersistentStore.Now 将临时对象放在那里,如何确保这些临时对象无法获取数据,我从中获取数据两个商店的上下文共同点?或者我是否必须为此类任务创建单独的上下文?


UPD:

现在我正在考虑为内存存储创建单独的上下文.如何将对象从一个上下文移动到另一个上下文?只是使用[context insertObject:]?它在这个设置中可以正常工作吗?如果我从对象图中插入一个对象,整个图形是否也会插入到上下文中?

iphone core-data objective-c

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

usleep是否创建线程取消点?

根据Linux联机帮助页,只有以下函数是线程取消点:pthread_join,pthread_cond_wait,pthread_cond_timedwait,pthread_testcancel,sem_wait,sigwait.在我的测试程序中,线程在usleep上退出.线程功能:

void* ThreadFunction(void* arg)
{
    int n = 0;

    pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
    pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);

    for(;;)
    {
        ostringstream s;
        s << "Thread iteration " << n++;
        PrintLine(s.str().c_str());

        usleep(500000);

        PrintLine("Check whether thread canceled...");
        pthread_testcancel();
        PrintLine("Thread is not canceled - continue");
    }

    pthread_exit(NULL);
}

当main函数执行pthread_cancel时,我希望ThreadFunction打印的最后一行是"检查线程是否被取消......".但是,它总是在退出之前打印"Thread iteration ...".这意味着,usleep是取消点.我认为这是正确的 - 任何睡眠功能都必须是可取消的.但这不是在文档中写的.

如果usleep line被注释,最后一个线程输出行是"检查线程是否被取消...",正如我所期望的那样.

c++ linux pthreads

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

T-SQL - 返回自定义错误消息和结束查询

我有一个冗长的存储过程,我想在其中执行以下操作:

IF @SubPageDirectory IS NULL
BEGIN
    RAISERROR('@SubPageDirectory cannot be NULL', 10, 1)
    EXIT STORED PROCEDURE
END
Run Code Online (Sandbox Code Playgroud)

基本上我想检查我的变量是否NULL,如果是,则向我的.NET Web应用程序返回一条错误消息,并在该阶段停止运行查询.我怎样才能做到这一点?

t-sql sql-server-2005 raiserror asp.net-3.5

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

如何使scala actor'等待信号'但不丢失任何消息?

我正试图让一个演员'去睡觉'等待另一个演员的信号.我想做的事情如下:

def act(){
    loop{ //Should I use loop here too??
        if(sleepy){
            react{
                   //SLEEPING
                    case "Wake Up"=> sleepy=false; //just to breack the react
            }
        }else{
            react{
                 //React to other messages
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我的演员睡觉时,其他消息会发生什么?他们会被放弃吗?我不想失去他们.解决这个问题的好方法是什么?

concurrency loops scala actor

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

TRUNCATE与DELETE FROM的优缺点

有人可以让我快速概述使用以下两个陈述的利弊:

TRUNCATE TABLE dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

VS

DELETE FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

看来和完成所有事情似乎他们都做了同样的事情; 但这两者之间是否存在差异?

t-sql sql-server truncate sql-server-2008 sql-delete

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

多次调用get_global_id()vs将结果保存在局部变量中?

这可能是一个愚蠢的问题,但是:get_*在OpenCL内核中调用某些函数有多贵?保存结果以便将来在某些本地变量中使用或在需要时调用所需的函数是否更好?

或者它取决于平台?

PS我认为,cuda用各种threadIdx变量更好地解决了它.

cuda opencl

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

.Net继承和成员可见性的奇怪问题

我在VB.Net类库中遇到了一个问题,我将其大大简化为以下内容...

Public MustInherit Class TargetBase

End Class

Public Class TargetOne
    Inherits TargetBase
End Class

Public Class TargetTwo
    Inherits TargetBase
End Class

Public Class TargetManager
    Public Sub UpdateTargets(ByVal Targets As List(Of TargetBase))
        For Each objTarget As TargetBase In Targets
            UpdateTarget(objTarget)
        Next
    End Sub

    Private Sub UpdateTarget(ByVal Value As TargetOne)

    End Sub

    Private Sub UpdateTarget(ByVal Value As TargetTwo)

    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

由于行上的语法错误,这将无法编译UpdateTarget(objTarget)- 重载解析失败,因为没有缩小转换就无法调用可访问的'UpdateTarget'

所以我改变For-Each循环使用Object而不是TargetBase ...

For Each objTarget As Object In Targets
    UpdateTarget(objTarget)
Next
Run Code Online (Sandbox Code Playgroud)

这现在编译,但我得到一个运行时错误 - 未找到类型'TargetManager'上的公共成员'UpdateTarget'.

所以我采取了明显的下一步,使2 UpdateTarget() …

.net oop inheritance

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

Visual Studio Installer项目:安装程序和应用程序图标

我有一个应用程序的图标,我已将其嵌入资源文件中,并用作应用程序的主要图标.到现在为止还挺好.

但是,我想为安装程序项目使用相同的图标,以及安装程序在"开始"菜单中放置的快捷方式.我可以设置安装程序包本身的图标,但前提是我在主应用程序文件夹中将图标添加为.ico文件.

将图标嵌入资源文件的重点是,我没有在Program Files中浮动ICO文件.我无法从安装程序项目中的主项目访问资源文件 - 是否有一些我不知道的技巧?

其次,即使我在主文件夹中包含一个图标,如果我将菜单快捷方式设置为使用它,它也不会 - 它在安装程序后在IDE和菜单中显示标准快捷方式图标.我又错过了一个技巧吗?

icons embedded-resource vsinstaller visual-studio

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