小编Bob*_*Bob的帖子

std :: shared_ptr - 我可以使用等号(=)进行初始化吗?

从我std::shared_ptrdoc的阅读中,你不能=用来初始化shared_ptr现有的指针.

如果您希望从现有指针初始化,则唯一可用的语法是
std::shared_ptr<int> p3 (new int);

是否正确无法使用=初始化a shared_ptr,如下所示:

std::shared_ptr<Foo> pFoo = new Foo(bar);
Run Code Online (Sandbox Code Playgroud)

其他人(在C++方面比我有更多经验)表示你可以.

c++ c++11

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

在函数调用中创建的对象上调用operator()括号吗?

我有一个类似于句柄的"智能指针".

#define DEST 123

HANDLE OpenHandle(int dest);
class SmartHandle;
void SendMsg(HANDLE dest_handle);

SendMsg(SmartHandle(OpenHandle(DEST)))
Run Code Online (Sandbox Code Playgroud)

这个结构经常在我的代码中使用,所以它确实有效,但我不明白为什么.

OpenHandle(DEST) 返回"智能指针"类的句柄

SendMsg- 采用相同类型的参数,返回由OpenHandle一个简单的HANDLEakavoid*

要使这个东西起作用,它确实HANDLE SmartHandle::operator()可以调用它.

为什么HANDLE SmartHandle::operator()要调用?

看一下代码,我只想SmartHandle创建一个类型的对象,然后不返回任何内容,然后SmartHandle调用析构函数.

c++

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

用于定义typedef的变量模板(使用C++ 11)

我刚刚定义了4个不同的typedef,差别很小,我想知道是否有办法使用模板更有效地完成这项工作.

我的typedef格式如下: typedef Type1 (*pf)(Type2, Type3, ...)

我如何模板这个typedef?

只是Type1需要.

我手动写:

typedef int (*pf)(int)
typedef bool (*pf)()
typedef char (*pf)(bool, int)
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的东西:

template <Type T1,Type...Rest>
typedef T1 (*pf)(Type...Rest)
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

c++ templates typedef

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

可以在函数名上使用#ifndef吗?

我正在使用MicroPython,它们的头文件使用了大量

#ifndef function_name
void function_name(const char *str, size_t len);
#endif
Run Code Online (Sandbox Code Playgroud)

使用在线 C 和 C++ 编译器,我尝试使用以下代码在 C++ 中进行测试

#include <iostream>
using namespace std;

void func();    

#ifndef func
int a = 5;
#else
int a = 3;
#endif    

int main()
{
  cout << "a = " << a << endl;
}
Run Code Online (Sandbox Code Playgroud)

而在C语言中

#include <stdio.h>

void func();


#ifndef func
int a = 5;
#else
int a = 3;
#endif


int main()
{
    printf("Hello World");
    printf("a = %d\n", a);
    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c c++ ifndef

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

linux 读取命令 - 什么是不使用,丢弃?

我已经看到notuseddiscard使用了该read命令,但找不到这两个关键字的定义位置;他们不在文档中read

https://unix.stackexchange.com/a/7214/393711

while read -t 0 notused; do
   read input
   echo "ignoring $input"
done
Run Code Online (Sandbox Code Playgroud)

https://superuser.com/questions/276531/clear-stdin-before-reading

read -t 1 -n 10000 discard 
read -p "Give me some input: " input
Run Code Online (Sandbox Code Playgroud)

bash

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

如何在没有jtag,断点,模拟器,模拟器的情况下单步执行目标代码

假设您有一个指向函数的指针,该函数的源代码是您没有的,而且是"不可信的",因为它可能会读取/写入不允许的内存区域.

在执行每个汇编指令之前,您需要验证它是否不访问不允许的内存区域.

操作系统(几乎)是裸机,即自定义RTOS(因此没有Linux或QNX).

这适用于不仅需要在开发期间而且在正常运行时期间启用的功能.

理想情况下,它运行如下:

void (*fptr)(int);
fptr = &someFunction; // untrusted, don't have source
// enable interrupts for each assembly instruction
_EN_INT();
// call the function
fptr();
// everytime the PC increments, some other code runs which verifies that if any load/stores are executed, it doesn't access some disallowed memory range

// disable interrupts for each assembly instruction
_DIS_INT();
Run Code Online (Sandbox Code Playgroud)

是否可以在每个汇编指令后调用该函数并暂停执行?

c embedded assembly gdb arm

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

gcc高效字节复制ARM Cortex M4

是否有内置的gccmemcopy功能,专门针对ARM Cortex M4的架构进行了优化?

assembly arm cortex-m

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

标签 统计

c++ ×4

arm ×2

assembly ×2

c ×2

bash ×1

c++11 ×1

cortex-m ×1

embedded ×1

gdb ×1

ifndef ×1

templates ×1

typedef ×1