示例代码:
#include<memory>
#include<iostream>
int main()
{
std::unique_ptr<int> intPtr{new int(3)};
int* myPtr = intPtr.get();
*myPtr = 4;
std::cout<<"New result for intPtr: "<< *intPtr.get()<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这不是打败了背后的全部目的std::unique_ptr
吗?为什么允许这样做?
编辑:我认为std :: unique_ptr背后的全部目的是拥有一个对象的唯一所有权.但是这个例子,可以通过另一个指针修改对象.这不是打败std :: unique_ptr的目的吗?
我在类定义中看到了多个 public 和 private 关键字,如下例所示:
class myClass
{
public:
void func1(){}
public:
void func2(){}
private:
int x;
int y;
private:
int z;
int baz;
};
Run Code Online (Sandbox Code Playgroud)
这个(如果有的话)的实际用途是什么?在任何情况下这可能有用吗?
有一个简单的方法吗?我尝试过以下方法:
typedef allocator<char,managed_shared_memory::segment_manager>
CharAllocator;
typedef boost::container::basic_string<char, std::char_traits<char>, CharAllocator>
my_basic_string;
std::string s(my_basic_string);
Run Code Online (Sandbox Code Playgroud) 谷歌 指定了这一点
AdRequest adRequest = new AdRequest.Builder()
.tagForChildDirectedTreatment(true)
.build();
Run Code Online (Sandbox Code Playgroud)
将使您的广告对儿童友好,符合COPPA标准.我在我的应用中指定了此选项.
那么,为什么我仍然在我的adob广告中看到成人约会网站的广告?这被认为是儿童友好?我错过了谷歌吗?
在 Makefile 中,$(NOOP) 通常用于什么?
我在一个特定的 Makefile 中看到, 它NOOP
被设置为/bin/sh -c true
并用于许多规则,例如以下规则:
all: pure_all
$(NOECHO) $(NOOP)
Run Code Online (Sandbox Code Playgroud)
这如何比
all: pure_all
Run Code Online (Sandbox Code Playgroud) 可能是一个基本问题,但我不确定为什么日志记录会导致此退出函数无法按预期工作:
#!/bin/bash
function exitFunct
{
exit 1
}
exitFunct 2>&1 | tee -a /var/tmp/output.txt
echo "You should never see this"
Run Code Online (Sandbox Code Playgroud)
但输出是"你永远不应该看到这个"
为什么:wq失败File is read only
,:w!然后:q成功?
sudo vi filename
由于权限为550 ,因此该文件已由命令打开
如何在makefile中打印换行符?
例如,如果我有一个目标:
printIt:
@echo "Compiling..."
Run Code Online (Sandbox Code Playgroud)
我怎么能打印出来
Compiling...
我在某处读到过,你可以定义一个。但我已经尝试过这里提到的内容:
define \n
endef
printit:
@echo "${\n}Compiling..."
Run Code Online (Sandbox Code Playgroud)
但这不会打印换行符。我也尝试过 C++ 风格的“\n”。我正在使用GNU Make 3.81
.
我最近在搜索使用该命令搜索文件时过滤掉" 权限被拒绝 "错误的方法find
,我找到了这个链接:
以下是从链接中找到的答案:
find . -name "filename" 2>&1 | grep -v 'permission denied'
Run Code Online (Sandbox Code Playgroud)
虽然这个答案有效,但我并不完全理解为什么我们需要2>&1
(将stderr重定向到stdout).
命令的输出是否find . -name "filename" | grep -v 'Permission denied'
已重定向到stdout?
尝试访问下面的成员变量s会导致以下错误:
错误:'cl :: s {aka singleton}'不是'cl'的基础
class singleton
{
public:
static singleton* getInstance()
{
static singleton* ptr{nullptr};
if(nullptr==ptr)
{
ptr=new singleton;
}
return ptr;
}
private:
int m_var;
};
class cl
{
public:
typedef singleton s;
};
int main()
{
cl* c;
c->s::getInstance();
}
Run Code Online (Sandbox Code Playgroud)
我没想到会出现这种错误.我究竟做错了什么?