小编Zer*_*30o的帖子

C++ 系统托盘专用程序

在检查了微软关于系统托盘图标的文档(我可以找到)后:

Shell_NotifyIconA 函数

NOTIFYICONDATAA结构

我注意到需要一个窗口句柄(HWND)。这对于我想要完成的任务来说非常糟糕,因为我正在创建一个仅对系统托盘做出反应的程序:它不会“最小化”托盘窗口,它只是使用通知(单击/右键单击该图标)进行交互。

我该怎么做呢?

c++ winapi system-tray

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

浮点IEEE保证

我想知道,对于以下情况,如果IEEE标准使用符合标准的任何cpu保证每种可能的情况(不包括NaN和无穷大):

  • 交换性:x#y = y #x
  • 相关性:(x#y)#z = x#(y#z)
  • x - x = 0(x - x == 0.0f总是返回true吗?)
  • x*0 = 0(x*0.0f == 0.0f总是返回true吗?)
  • x*1 = x(x*1.0f == x总是返回true吗?)
  • x/x = 1.0f(x/x == 1.0f总是返回true?当然除了x = 0)

(#表示所有操作:+ - */)

floating-point standards operations ieee

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

包含原子的类的 std::vector

我正在尝试创建一个包含类实例的向量,该类实例又包含(除其他外)std::atomic。

我已经尝试过以下几种:

  • 如果没有指定复制构造函数,编译器将给出构造函数被删除的错误。

如果指定了复制构造函数,我尝试了两件事:

  • 对于 foo(foo& other) ,它会抱怨没有找到 foo 的复制构造函数。

    编辑:复制构造函数是 foo(foo& other) :atomic(other.atomic.load()) {}

  • 对于 foo(const foo& other) ,它会抱怨 std::atomic 没有 const 复制构造函数。

    编辑:复制构造函数是 foo(const foo& other) :atomic(other.atomic.load()) {}

我完全不知道如何解决这个问题,所以非常感谢任何帮助

c++ copy vector atomic copy-constructor

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

您可以不调用构造函数就调用析构函数吗?

我一直试图在不需要时不初始化内存,并且正在使用malloc数组来这样做:

这是我运行的:

#include <iostream>

struct test
{
    int num = 3;

    test() { std::cout << "Init\n"; }
    ~test() { std::cout << "Destroyed: " << num << "\n"; }
};

int main()
{
    test* array = (test*)malloc(3 * sizeof(test));

    for (int i = 0; i < 3; i += 1)
    {
        std::cout << array[i].num << "\n";
        array[i].num = i;
        //new(array + i) i; placement new is not being used
        std::cout << array[i].num << "\n";
    }

    for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c++ malloc constructor destructor initialization

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

最大限度提高精度的运算顺序

我使用浮点数进行这些操作:

这两个哪个更准确呢?

  • (a * b) / c

或者

  • (a / c) * b

这到底重要还是取决于具体情况?如果是这样,在什么情况下我应该选择哪一个?

c++ floating-point precision

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