小编Ton*_*ark的帖子

#if中使用的未定义常量的值是多少?

为了评估#if条件,我的预处理器似乎假设未定义的常量为0 .

可以依赖它,还是未定义的常量给出未定义的行为?

c++ c-preprocessor

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

是否有可能在任何地方抛出异常的STL容器方法列表?

我知道STL会抛出内存分配错误,或者如果包含的类型抛出其构造函数/赋值运算符.

否则,显然'少数'STL方法可能抛出其他异常.每个人似乎都提到的例子是vector :: at(),但我无法找到其他任何地方的列表.

有谁知道这样的清单?

c++ stl

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

在C++中分配时,我们分配的对象是否会被破坏?

以下代码片段是否泄漏?如果没有,那么在foobar()中构造的两个对象在哪里被破坏?

class B
{
   int* mpI;

public:
   B() { mpI = new int; }
   ~B() { delete mpI; }
};

void foobar()
{
   B b;

   b = B();  // causes construction
   b = B();  // causes construction
}
Run Code Online (Sandbox Code Playgroud)

c++ rule-of-three

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

为什么std :: map :: operator []反直觉?

对于通常用于访问数据结构的操作员来说,在我看来"邪恶"(在C++常见问题中的含义),突然被定义为将数据插入数据结构.

我想问题是'什么会更好'?对于某些类型的映射值,可以轻松回答这个问题; 例如,如果我们将键映射到指针,您可能真的希望operator []为不存在的键返回nullptr,但这显然不适用于其他类型.

它可以在不存在的键上抛出异常,甚至默认构造一个临时的并返回它而不将其添加到地图中.将[]从读取语义转换为此容器类型的写入语义的好理由是什么?

c++ stl

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

如何在SDL2 / C ++ / Visual Studio 2012 Express程序中设置窗口标题栏图标和alt-tab图标?

我已经将.rc文件添加到我的项目中,仅包含以下内容:

IDI_MAIN_ICON          ICON          "..\\..\\icon_artwork\\windows_icons\\project.ico"  
Run Code Online (Sandbox Code Playgroud)

.ico文件包含分辨率为16x16、32x32、48x48和256x256的图标。

我在任务栏和资源管理器中看到了该图标(因此,毫无疑问.ico已成功嵌入到.exe中),但是我在该应用程序自己的标题栏中和alt-tab中看到了默认的Windows 7应用程序图标。

是否有办法让OS在所有情况下都能单独查看嵌入式图标,还是需要为此编写一些应用程序代码?我注意到有一个SDL2功能

void SDL_SetWindowIcon(SDL_Window*  window, SDL_Surface* icon)  
Run Code Online (Sandbox Code Playgroud)

但这需要SDL表面,而不是可执行文件中的嵌入式图标资源。

谢谢任何想法,
托尼

c++ icons sdl visual-studio-2012

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