小编use*_*717的帖子

范围基础和插入向量C++ 11

在迭代它时,是否可以在C++ 11中更改向量的大小?很明显,迭代器将失效,但仍然可以使用以下干净的语法?

std::vector<some_type> vec;
for(auto elem : vec) {
   if(condition(elem)) {
      new_elem = function(elem);
      vec.insert(iterator_associated_with_elem+1, new_elem);
   }
   //Don't insert on condition(new_elem)
}
Run Code Online (Sandbox Code Playgroud)

如果没有,完成此任务的最干净的代码是什么?

c++ stdvector auto c++11

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

让std :: complex <double>传递std :: is_floating_point测试

我想要的类型double,float,complex<double>complex<float>通过一个static_assert条件.我认为static_assert(std::is_floating<T>::value, "some message")可以做到这一点,但是复杂的类型没有通过这个测试(至少在gcc-4.10下).

我将添加什么谓词以确保long double允许这四种类型(也许也可以是s)作为模板实例化,但没有别的?

c++ templates static-assert c++11

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

在Docker容器中使用所有可用CPU的方法不那么笨拙:

我使用以下可怕的语法告诉我的docker容器使用主机上的所有CPU:

docker run  --cpuset-cpus="0-`python3 -c "from multiprocessing import cpu_count; print(cpu_count() -1)"`" ubuntu:latest /bin/bash
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

docker

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

如何将托管实例组添加到目标池?

如何将自动扩展托管实例组添加到目标池?

通过以下方式将现有实例添加到目标池非常容易

$ gcloud compute target-pools create mypool --region us-central1
$ gcloud compute target-pools add-instances mypool \
   --instances existing-instance1 existing-instance2 --zone us-central1-b
Run Code Online (Sandbox Code Playgroud)

但是,我希望自动扩展组中出现的所有实例都自动添加到我的目标池中。

google-compute-engine gcloud gce-instance-group

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

谷歌/基准:BENCHMARK_TEMPLATE 语法

我想在float,double和上运行 google/benchmark long double

鉴于BENCHMARK_TEMPLATE 示例,我尝试了以下操作:

#include <cmath>
#include <ostream>
#include <random>
#include <benchmark/benchmark.h>

template<typename Real>
BM_PowTemplated(benchmark::State& state) {
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<Real> dis(1, 10);
    auto s = dis(gen);
    auto t = dis(gen);
    Real y;
    while (state.KeepRunning()) {
        benchmark::DoNotOptimize(y = std::pow(s, t));
    }
    std::ostream cnull(0);
    cnull << y;
}

BENCHMARK_TEMPLATE(BM_PowTemplated, float, double, long double);
BENCHMARK_MAIN();
Run Code Online (Sandbox Code Playgroud)

我想象这会为 float、double 和 long double 创建三个基准,但它不会编译!

创建模板化谷歌基准测试的正确语法是什么?我的心智模型是否BENCHMARK_TEMPLATE应该正确工作,如果是,我该如何修复此代码?

benchmarking c++11

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

C++ 20 接受随机访问容器但拒绝 std::list 的概念

std::vector已知满足 a 的要求RandomAccessContainer,因此使用[]运算符是常数时间。然而,仅满足 a和std::list的较弱要求,因此检索元素是 O(N),而且运算符不存在。ContainerReversibleContainer[]

我想限制一个模板,以便每当[]运算符不存在或不是 O(1) 时我都可以得到一个很好的编译时错误。我怎样才能实现这个目标?

目前,在 g++ 11.2.0 上,当使用以下模板实例化以下模板时,我无法获得干净的错误消息std::list

template<typename RandomAccessContainer>
void foo(RandomAccessContainer const & x);
Run Code Online (Sandbox Code Playgroud)
template<typename ContiguousContainer>
void foo(ContiguousContainer const & x);
Run Code Online (Sandbox Code Playgroud)
template<typename T>
requires ContiguousContainer<T>
void foo(T const & x);
Run Code Online (Sandbox Code Playgroud)

c++ c++-concepts c++20

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

SESSION_COOKIE_HTTPONLY = True 在 Django 中不起作用:

我在我的中设置了以下代码settings.py

SESSION_COOKIE_HTTPONLY = True
Run Code Online (Sandbox Code Playgroud)

即使文档说这是默认值。

然后我./manage.py runserver在网站上使用并运行 OWASP Zap 扫描仪。但是 OWASP zap 说 cookie 是在没有 HttpOnly 标志的情况下设置的:

在此处输入图片说明

当我使用gunicorn和为站点提供服务时,我也遇到了这个问题nginx。我怎样才能设置这个标志?

使用django 1.8; 如果相关,该页面accounts/login由 管理django-registration-redux

django zap

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

如何判断是否从多个线程调用函数

我有一个C++函数,由我无法访问的代码框架调用.如果框架从多个线程调用此代码,我需要在多个位置放置互斥锁.如果没有,我不希望对互斥体进行性能惩罚.鉴于我可以通过框架运行代码,有没有办法确定框架是否从多个线程调用函数?

c++ multithreading

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

在Makefile的"addprefix"中转义字符

我有一个库列表:

lib_paths := dir1 dir2 dir3
Run Code Online (Sandbox Code Playgroud)

我想通过我的rpath添加

LDFLAGS += (addprefix -Wl,-rpath,$(lib_paths))
Run Code Online (Sandbox Code Playgroud)

当然,这会失败,因为它,addprefixMakefile中函数的分隔符.我怎么能逃脱逗号?

makefile

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

允许引用变量在C++中破坏它们的对象吗?

假设我们有以下(奇异)代码:

int* getPointer(int* p) {
    int* x_p = nullptr;
    int& x = *p;
    if(x==7) {
        x_p = &x;
    }
    return x_p;
}
Run Code Online (Sandbox Code Playgroud)

由于x分配了值p,我觉得这个代码是不安全的:当x超出范围时,它的关联对象可以被破坏,留下x_p无效状态.

但是,我测试了这段代码,它运行正常.我是幸运的还是x参考变量的事实是否改变了破坏序列?

c++

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

UBSan:存储到未对齐的地址;出了什么问题,我应该关心吗

我在 UBSan 下运行了一些代码,发现了一个我以前从未见过的错误:

/usr/include/c++/7/bits/stl_algobase.h:324:8: runtime error: store to misaligned address 0x611000001383 for type 'struct complex', which requires 4 byte alignment
0x611000001383: note: pointer points here
 66  46 40 02 00 00 00 00 00  00 00 00 04 01 18 00 08  00 00 00 00 00 00 00 08  00 00 00 00 00 00 00
              ^
Run Code Online (Sandbox Code Playgroud)

(g++-7.3.0、Ubuntu 18.04、标志 -fsanitize=地址 -fsanitize=未定义)

这个错误是什么意思?这真的是一个错误吗(它在标准库中,所以它不会糟糕,对吧?),我应该关心它吗?

ubsan

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