小编wiz*_*urd的帖子

get()是否打破了std :: unique_ptr背后的想法?

示例代码:

#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的目的吗?

c++ smart-pointers c++11

11
推荐指数
3
解决办法
5512
查看次数

类定义中的多个 public/private 关键字

我在类定义中看到了多个 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)

这个(如果有的话)的实际用途是什么?在任何情况下这可能有用吗?

c++ c++11

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

将boost :: container :: boost basic_string转换为std :: string

有一个简单的方法吗?我尝试过以下方法:

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)

c++ boost stdstring boost-interprocess

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

Admob儿童指导设置

谷歌 指定了这一点

 AdRequest adRequest = new AdRequest.Builder()
 .tagForChildDirectedTreatment(true)
 .build();
Run Code Online (Sandbox Code Playgroud)

将使您的广告对儿童友好,符合COPPA标准.我在我的应用中指定了此选项.

那么,为什么我仍然在我的adob广告中看到成人约会网站的广告?这被认为是儿童友好?我错过了谷歌吗?

android admob

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

$(NOOP) 通常用于 Makefile 中的什么?

在 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)

makefile

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

为什么这个bash脚本不会退出?

可能是一个基本问题,但我不确定为什么日志记录会导致此退出函数无法按预期工作:

#!/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)

但输出是"你永远不应该看到这个"

bash

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

为什么:w!工作,但不是:wq?文件只读错误

为什么:wq失败File is read only:w!然后:q成功?

sudo vi filename由于权限为550 ,因此该文件已由命令打开

vi

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

无法在 makefile 中打印换行符

如何在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.

makefile gnu-make

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

查找中的权限被拒绝:为什么我们需要2>&1?

我最近在搜索使用该命令搜索文件时过滤掉" 权限被拒绝 "错误的方法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?

error-handling bash find io-redirection

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

typedef singleton作为成员变量

尝试访问下面的成员变量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)

我没想到会出现这种错误.我究竟做错了什么?

c++ singleton typedef c++11

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