小编Ulr*_*rdt的帖子

std :: unique_ptr析构函数构造函数顺序

我想知道何时将新的unique_ptr分配给先前的unique_ptr,会发生什么.在以下代码中:

std::unique_ptr<my_class> test;
......
test = std::unique_ptr<my_class>(new my_class());
......
test = std::unique_ptr<my_class>(new my_class());
Run Code Online (Sandbox Code Playgroud)

我预计当我第二次分配一个新的std :: unique_ptr进行测试时,首先调用my_class的析构函数,然后调用它的构造函数.我的预期是错的吗? 但是当我调试我的代码时,我看到的是反向的.my_class的第一个构造函数调用然后调用它的析构函数.

c++ std

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

CreateCompatibleBitmap()返回黑色HBITMAP

Hello Stack Overflow用户.我似乎没有在以下代码中正确使用CreateCompatibleBitmap():

#include <windows.h>
using namespace std;
int main() {HDC hdc=GetDC(HWND_DESKTOP); HDC MemDC=CreateCompatibleDC(hdc);
    HBITMAP hBit=CreateCompatibleBitmap(hdc,1366,768);
    SelectObject(MemDC,hBit);
    BitBlt(hdc,0,0,1366,768,MemDC,0,0,SRCCOPY); //Screen turns black
    DeleteObject(hBit);
    ReleaseDC(HWND_DESKTOP,hdc);
    ReleaseDC(NULL,MemDC);
    DeleteDC(MemDC);
    DeleteDC(hdc);
}
Run Code Online (Sandbox Code Playgroud)

我认为CreateCompatibleBitmap()是返回Desktop DC的1366x768部分,但在BitBlt()之后会显示黑屏.而不是使用CreateCompatibleBitmap我将位图文件加载到hBit,一切都是所希望的,所以我猜问题只在于CreateCompatibleBitmap().我正确使用此功能吗?有没有我不应该做的事我应该这样做?

c++ winapi gdi

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

如何在 Linux 中将所有 .yml.sample 文件复制并重命名为 .yml?

bash想复制.yml.sampleGit 存储库中的所有文件(递归地)并将它们重命名为只有.yml extension.

\n\n

例如。test.yml.sample将被复制到test.yml

\n\n

Here\xe2\x80\x99s 与我\xe2\x80\x99 一样接近,但我不清楚.sample复制时如何去掉文件名的末尾。

\n\n
find . -depth -name "*.yml.sample" -exec sh -c \'cp "$1" "${1%/.sample/}"\' _ {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n

bash

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

如何在C中设置uint8_t的3个低位

我想将 uint8_t 的 3 个下位设置为值 3。我尝试了以下操作:

uint8_t temp = some_value;
temp = temp & 0x3
Run Code Online (Sandbox Code Playgroud)

但这不起作用......

c bitwise-operators

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

读取恰好具有良好价值的未初始​​化变量

我在Blackfin 533处理器上运行的一些代码中遇到了这个bug.

第一次Func()运行时,fooStruct将包含垃圾,但在下一次迭代中,getFoo()偶然返回的旧值仍然存在fooStruct.foo.

FooStruct
{
    double foo;
    double bar;
};

void Func()
{
    FooStruct fooStruct;

    double bar = 123.4 / fooStruct.foo;

    fooStruct.foo = getFoo();
    fooStruct.bar = bar;
}
Run Code Online (Sandbox Code Playgroud)

这意味着第一次运行时,我们正在读取未初始化的变量,这是未定义的行为.以下迭代怎么样?这仍然是未定义的行为吗?在嵌入式处理器上读取未初始化的变量时,我们可以期待看到什么样的行为?

c++ embedded language-lawyer blackfin

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

在查找中排除目录数组/列表

我正在尝试使用配置文件提供的数组来排除find. 数组的一个简单示例如下所示:

excludedDirList2[0]='*.'
excludedDirList2[1]='node_modules'
Run Code Online (Sandbox Code Playgroud)

我一直在摆弄-prune! -path选项,但我无法找到一种动态读取数组、生成find并使其实际工作的方法。

可以运行但不能动态读取数组的命令示例

find $dir -type f -name "hidden.txt" ! -path "${excludedDirList[1]}" ! -path "${excludedDirList[0]}"
Run Code Online (Sandbox Code Playgroud)

bash find

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

sprintf() 没有右对齐

我使用 MPLAB 5.25 和 XC8 (2.10) 为 PIC18F42K47 编译程序。

我想打印右对齐到缓冲区,但输出总是左对齐。这是我的代码:

uint8_t Str_1[10] = {0};
uint8_t Str_2[10] = {0};
uint8_t Str_3[10] = {0};

sprintf(Str_1, "%3.2f", 12.345);    // -> "12.35" 
sprintf(Str_2, "%04.2f", 2.345);    // -> "2.35"  
sprintf(Str_3, "% 3.1f", -123.4);   // -> "-123.4"
Run Code Online (Sandbox Code Playgroud)

c xc8

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

Visual Studio 2019 中自动递增文件版本(版本号)

经过大量搜索后,我找到了一个用于跟踪和增加项目构建编号的工具。对于 C/C++ 项目。所有其他的要么已经过时,要么适用于 C#。

我正在使用此博客中的 IncrementBuild-*.exe:http://alax.info/blog/1713

它按预期工作,但我相信我做错了什么,因为在运行此工具后构建后,它出于某种原因添加了另一个 VERSIONINFO 资源。该项目最终有 2 种资源,原始资源和修补后的资源。

没有源代码或 .pdb 来修改/重制/分析它。

有没有人有比这更好的解决方案?

请指教,不胜感激。

c++ windows visual-studio

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

使用查找导致 ls 中的换行符的目录名称中的 bash 空格

我无法处理文件名中的空格

脚本:使用 find 我选择所有目录,它们被输入 ls 以计算目录中的文件数

bash代码:

#!/bin/bash

for adir2 in $(find . -type d);
do
        echo "[$adir2]"
        DIRCOUNT=$(ls -1A $adir2 |wc -l)
        if [ $DIRCOUNT -eq 0 ]; then
          echo $adir2 "is empty"
        fi
done
Run Code Online (Sandbox Code Playgroud)

测试设置:

mkdir testdir
cd testdir
mkdir 01\ dir
Run Code Online (Sandbox Code Playgroud)

在这里运行脚本

结果:

[.]
[./dir]
./dir is empty
[./01]
ls: cannot access './01': No such file or directory
./01 is empty
[dir]
dir is empty
Run Code Online (Sandbox Code Playgroud)

我正在使用 Ubuntu 20

备注: 以下不起作用:

find /path/to/dir -empty -type d
Run Code Online (Sandbox Code Playgroud)

显示所有目录。显然,空属性不存在。该位置是带有 ext4 …

bash ubuntu ls

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

重命名多个子文件夹中的文件

我有多个唯一的目录,每个目录都包含一个名为filtered_feature_bc_matrix.h5. 我想将目录名称粘贴到文件名上,以使文件名在每个文件夹中唯一。这可能吗?

./sample_scRNA_unsorted_98433_Primary_bam/outs/filtered_feature_bc_matrix.h5
./sample_scRNA_unsorted_77570_Primary_bam/outs/filtered_feature_bc_matrix.h5
Run Code Online (Sandbox Code Playgroud)

出去:

./sample_scRNA_unsorted_98433_Primary_bam/outs/sample_scRNA_unsorted_98433_Primary_bam_filtered_feature_bc_matrix.h5
./sample_scRNA_unsorted_77570_Primary_bam/outs/sample_scRNA_unsorted_77570_Primary_bam_filtered_feature_bc_matrix.h5
Run Code Online (Sandbox Code Playgroud)

bash

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