问题列表 - 第36911页

现代 C++ 设计中的 CompileTimeChecker 未按预期工作

我最近开始阅读 Andrei Alexandrescu 的 Modern C++ Design。阅读编译时断言后,我尝试了以下代码:

模板<bool> struct CompileTimeChecker
{
    CompileTimeChecker(...){};
};
模板<> struct CompileTimeChecker<false>{};

#define STATIC_CHECK(expr, msg) \
{\
    类 ERROR_##msg{}; \
    (void)sizeof(CompileTimeChecker<(expr)!=0>((ERROR_##msg()))); /*第1行*/ }


int main()
{
    STATIC_CHECK(sizeof(char)>sizeof(int),TypeTooNarrow); /*第2行*/

    STATIC_CHECK(sizeof(char)<sizeof(int),TypeTooNarrow); /*第3行*/
}

由于第 2 行,代码不应编译,但编译正常。如果我将第 1 行更改为

(void)(CompileTimeChecker<(expr)!=0>((ERROR_##msg()))); /*第1行*/ }

或者

新的 CompileTimeChecker<(expr)!=0>((ERROR_##msg())); /* 第 1 行 */ }

它按预期工作。我不明白。

c++ templates compile-time

5
推荐指数
0
解决办法
725
查看次数

记录的最佳方法是什么?

我的(本地,windows/mono)应用程序将重要事件记录到文本文件中.在突然崩溃/失败/强行退出的情况下,没有数据应保持不成文(尽可能).因此,我目前使用简单的追加文本文件方法:

Public Shared Sub LogAppEvent(ByVal EventData As String)
    Dim Config As ConfigHandler = ConfigHandler.GetSingleton()
    Dim AppLog As New IO.StreamWriter(Config.GetUserFilesRootDir() & ConfigOptions.AppLogName, True)
    AppLog.WriteLine(String.Format("[{0}] {1}", Date.Now.ToString(), EventData))
    AppLog.Close()
End Sub
Run Code Online (Sandbox Code Playgroud)

这是非常次优的,但是日志事件非常罕见.你会建议搬到System.Diagnostics伐木班吗?

或者你可以建议另一个解决方案?

.net vb.net logging

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

C++ typename和内部类

我试过谷歌搜索,但我无法得出一个合适的答案.任何C++专家都可以告诉我为什么C++要求你<T>用typename关键字声明OuterClass :: Innerclass?

我是数据结构课程的助教,我一直看到这个错误.我知道要告诉我的学生他们需要将typename放在返回类型的前面,但我无法解释为什么这是必需的.

谢谢.

c++ templates

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

Internet Explorer 9中的渐变

有没有人知道IE9中渐变的供应商前缀,或者我们仍然应该使用他们的专有过滤器?

我为其他浏览器获得的是:

background-image: -moz-linear-gradient(top, #444444, #999999); /* FF3.6 */
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #444444),color-stop(1, #999999)); /* Saf4+, Chrome */
filter:  progid:DXImageTransform.Microsoft.gradient(startColorStr='#444444', EndColorStr='#999999'); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#444444', EndColorStr='#999999')"; /* IE8 */
Run Code Online (Sandbox Code Playgroud)

作为奖励有没有人知道Opera的供应商前缀?

css gradient background css3 internet-explorer-9

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

自定义异常:通过许多子类或使用enum支持的单个类进行区分?

我正在寻找为我Exceptions目前正在进行的项目实现自己的一套.该项目依赖于具有基本框架异常的核心框架MyFrameworkException(我也在编写此框架).

对于任何给定的项目,我想抛出几种不同的类型,Exceptions我无法决定使用多个子类或单个子类与某种形式的Enum构造函数参数.

在这两种情况下我都有:

public class MyFrameworkException   extends Exception              { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

选项1:

public class MyProjectBaseException extends MyFrameworkException   { /*...*/ }
public class SpecificExceptionType1 extends MyProjectBaseException { /*...*/ }
public class SpecificExceptionType1 extends MyProjectBaseException { /*...*/ }
public class SpecificExceptionType1 extends MyProjectBaseException { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

然后,在整个项目中,我会针对发生的任何问题抛出特定的异常.

选项2:

public class MyProjectException extends MyFrameworkException {
  public static enum Type {
    SpecificType1, SpecificType2, SpecificType3
  }
  public MyProjectException( Type type ) { /*...*/ }
}
Run Code Online (Sandbox Code Playgroud)

MyProjectException对于发生的任何问题,我总是会抛出特定的枚举类型.我提供了一些机制,以便可以 …

java exception-handling exception custom-exceptions

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

用于分离辅助监视器的C++应用程序

我正在尝试创建一个应用程序来从Windows框中分离辅助监视器(长篇故事).

以下是我用作基础的Microsoft示例代码:http: //support.microsoft.com/kb/308216/en-us

这是我的代码:

#include <iostream>
#include <windows.h>

void DetachDisplay()
{
    BOOL            FoundSecondaryDisp = FALSE;
    DWORD           DispNum = 0;
    DISPLAY_DEVICE  DisplayDevice;
    LONG            Result;
    TCHAR           szTemp[200];
    int             i = 0;
    DEVMODE   defaultMode;

    // initialize DisplayDevice
    ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));
    DisplayDevice.cb = sizeof(DisplayDevice);

    // get all display devices
    while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0))
        {
        ZeroMemory(&defaultMode, sizeof(DEVMODE));
        defaultMode.dmSize = sizeof(DEVMODE);
        if ( !EnumDisplaySettings((LPSTR)DisplayDevice.DeviceName, ENUM_REGISTRY_SETTINGS, &defaultMode) )
                  OutputDebugString("Store default failed\n");

        if ((DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) &&
            !(DisplayDevice.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE))
            {
            DEVMODE    DevMode;
            ZeroMemory(&DevMode, sizeof(DevMode));
            DevMode.dmSize …
Run Code Online (Sandbox Code Playgroud)

c++ winapi windows-7

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

System.Windows.Media.Color为颜色名称

我有以下内容:

Color color = Colors.Red;
color.ToString();
Run Code Online (Sandbox Code Playgroud)

以十六进制表示形式输出.有没有办法输出"红色"?

奖金指向任何人提供适用于不同文化的解决方案(即输出西班牙语的"Rojo").

c# silverlight-3.0

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

如何转换main()函数的返回值?

我正在使用Visual Studio 2008.对于下面的代码

double main()
{
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误C3874:'main'的返回类型应为'int'而不是'double'

但如果我使用下面的代码

char main()
{
}
Run Code Online (Sandbox Code Playgroud)

没有错误.运行并退出输出窗口后显示

程序'[5856] test2.exe:Native'已退出,代码为-858993664(0xcccccc00).

问题:编译器是否从默认返回值零(整数)到char进行隐式转换?

如何生成代码0xcccccc00?

看起来该代码中的最后一个字节似乎是实际的返回值.为什么0xcccccc即将到来?

c c++

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

jqGrid - 如何向网格添加自定义属性

如何向网格添加自定义属性?

jqGrid本身不会使用这些属性.它更多的是我们的自定义代码将使用的元数据.

例如,我们想要一个自定义属性来识别网格是否出现在我们的"主页"上.这个属性将由我们的一些常见函数读取,这些函数将根据网格是否在主页面上以不同方式处理某些任务.

你能做的事情如下:

mygrid.onMainPage = true;
Run Code Online (Sandbox Code Playgroud)

?? 不确定这是有效的JavaScript还是会搞砸jqGrid.

jquery properties jqgrid

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

如何在C++中初始化指向特定内存地址的指针

可能重复:
指向特定固定地址的指针

关于这一点的有趣讨论从这里开始,但没有人能够提供C++的做法:

#include <stdio.h>

int main(void)
{
  int* address = (int *)0x604769; 
  printf("Memory address is: 0x%p\n", address);

  *address = 0xdead; 
  printf("Content of the address is: 0x%p\n", *address);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在C++中做这样事情最合适的方法是什么?

c c++ memory pointers casting

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