小编Jus*_* R.的帖子

可选参数用于引用指针?

如何将第二个参数声明为可选参数?

template <typename T>
inline void Delete (T *&MemoryToFree,
    T *&MemoryToFree2 = ){
    delete MemoryToFree;
    MemoryToFree = NULL;

    delete MemoryToFree2;
    MemoryToFree2 = NULL;

}
Run Code Online (Sandbox Code Playgroud)

我在=运算符之后尝试了几个东西,比如NULL,(T*)NULL等.可以这样做吗?

编译器允许我这样做的唯一方法是使用重载...

    template <typename T, typename T2>
inline void Delete (T *&MemoryToFree, T2 *&MemoryToFree2){
    delete MemoryToFree;
    MemoryToFree = NULL;

    delete MemoryToFree2;
    MemoryToFree2 = NULL;
}
Run Code Online (Sandbox Code Playgroud)

c++ parameters pointers reference optional

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

用C++创建原始文本字符串,类似于C#的"@ string"

我是从C#来到C++的.我有一个包含大量反斜杠的字符串,我想将字符串作为原始文本读取.C++是否有类似C#的"字符串"?例如:

string s = @"\\Some\Path";
Run Code Online (Sandbox Code Playgroud)

在我正在使用的C++文件中:

#include <string>
Run Code Online (Sandbox Code Playgroud)

c# c++ string string-literals

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

不能仅通过返回类型来区分过载功能

我正在阅读"Effective C++"并尝试从规则3编译此示例:

class TextBlock
{
public:
    const char& operator[](size_t position) const
    {
        return text[position];
    }
    char& operator[](size_t position) const
    {
        return const_cast<char&>(
            static_cast<const TextBlock&>(*this)
            [position]
        );
    }
private:
    string text;
};
Run Code Online (Sandbox Code Playgroud)

这必须描述如何防止代码重复; 不写相同的代码来返回非const结果.我正在使用VS2012.但是我收到了一个错误.我听说重载的函数不能有不同的返回类型,但看到这个后我不知道该怎么想.

c++ overloading

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

终端上的globbing的优雅降级

每当glob模式匹配失败时,它就会停止整个作业.例如,

$ mv *.jpg *.png folder1 && blahblah
mv: cannot stat `*.jpg': No such file or directory
Run Code Online (Sandbox Code Playgroud)

*.png未移至folder1且未运行blahblah.

并且下面的脚本仅适用于两者的情况.[Az]*和*成功.

#!/bin/bash
cd $1
du -sk .[A-z]* *| sort -rn | head
Run Code Online (Sandbox Code Playgroud)

如何使globbing优雅地失败,最多只显示警告,但从不停止工作?

bash shell terminal glob graceful-degradation

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

Visual Studio 2005:是否有编译器选项将所有基于堆栈的变量初始化为零?

这个问题之前不得不被问到,所以它让我再次问它,但我无法找到所有谷歌和搜索stackoverflow.

我将一堆linux代码移植到windows中,其中很大一部分假设所有内容都自动初始化为零或null.

int whatever;
char* something;
Run Code Online (Sandbox Code Playgroud)

...然后立即做一些可能会让'某事'无效的事情,并针对'某事'进行测试

if(something == NULL)
{
.......
}
Run Code Online (Sandbox Code Playgroud)

我真的不想在整个代码中回过头来说:

int whatever = 0;
char* something = NULL;
Run Code Online (Sandbox Code Playgroud)

即使这是处理它的正确方法.这只是非常耗时.

否则,我声明一个变量,如果我自己没有设置它,它会被初始化为疯狂的东西.

compiler-construction variables initialization visual-studio

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

是一个表9 GB数据库好的设计?

我被要求考虑我们的应用程序的数据库.需要存储大约7种不同的数据.一个是识别数据,其可以包含唯一的序列号,时间,位置.所有其他6个数据集(4个二进制原始数据,2个文本数据)必须由识别数据识别.其中3个记录大约2 MB,其他只有几KB.

要存储的最大记录数为1500.每行大约6 MB,因此最大总数据大约为9 GB.

我想只有一张桌子.但它看起来很丑陋,一张表有9 GB的数据.

你有这样的数据库吗?我们可能会使用MySQL RDBMS.

mysql database-design

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

导入模块上的强名称验证失败

我无法导入程序集,据说是因为强名称验证失败,尽管即使我注册了不检查的程序集,也会发生这种情况。有人可以发现我在这里做错了吗?

以下是抄录。作为参考,sn.exe 的开关是:

  • -v:验证签名。
  • -Vr:注册程序集以进行验证跳过。

    PS C:\temp> .\sn.exe -v .\my.dll

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    程序集 '.\my.dll' 有效

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module :无法加载文件或程序集“my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : NotSpecified: (:) [Import-Module], FileLoadException
      • FullQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell .Commands.ImportModuleCommand

    PS C:\temp\Cmdlets> .\sn.exe -Vr *

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    为程序集 ' , '添加了验证条目

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module :无法加载文件或程序集“my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : …

.net strongname sn.exe import-module

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

VisualStudio是否提供了查看纹理的方法?

我以编程方式创建DirectX纹理并将其绑定到着色器.我想验证纹理是否按预期显示.Visual Studio 2012或其他工具是否提供了查看纹理的方法?我可以渲染这个东西,但这需要一些工作,如果有一个现有的解决方案,我宁愿使用它.

directx graphics textures visual-studio-2012

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

OS Loader在执行托管到本机互操作时锁定

我正在使用HwndHost将本机控件(C++)加载到WPF控件中.HwndHost的定义如下:

class ControlHost : System.Windows.Interop.HwndHost
{
    public IntPtr Handle;
    protected override HandleRef BuildWindowCore(HandleRef hwndParent)
    {
        // instantiate the native control
        Handle = control.Handle;
        return new HandleRef(this, control.Handle);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的WPF项目有一个System.Windows.Controls.Border名为ControlHostElement.一般模式是获取ControlHostElement的句柄,实例化本机控件并将其设置为WPF控件的子元素.这种模式由MSDN 此规定.我通过WPF页面上的按钮触发了这个:

private void btnHwndHost_OnClick(object sender, RoutedEventArgs e)
{
    myControlHost = new ControlHost();
    ControlHostElement.Child = myControlHost;
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我实例化我的本机控件时,我在分配Child的行中收到OS Loader Lock错误:

DLL'my.dll'正在尝试在OS Loader锁中执行托管执行.不要尝试在DllMain或图像初始化函数中运行托管代码,因为这样做会导致应用程序挂起.

我不知道我在这一点上是如何进入加载程序线程的,但我想我应该启动一个新线程来执行初始化和窗口句柄赋值:

private void btnHwndHost_OnClick(object sender, RoutedEventArgs e)
{
    Thread loadControlHostThread = new Thread(
        new ThreadStart(this.loadControlHostThread_DoWork));
    loadControlHostThread.SetApartmentState(ApartmentState.STA);
    loadControlHostThread.Start();
}

void loadControlHostThread_DoWork()
{
    myControlHost = …
Run Code Online (Sandbox Code Playgroud)

c# c++ wpf multithreading interop

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

共享对象

想象一下,我有一个很好的Deck课程,以最好的OO方式.它有卡片,有套装和等级,有Shuffle方法,等等.现在,我将有很多并发的Deck实例(比如这是一个赌场).问题是:所有甲板上的每张卡都应该有不同的实例吗?

language-agnostic oop reference instance

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