小编Zak*_*Zak的帖子

ISO C 或 C++ 标准是否指定 `const char *` 应该是一个 NULL 终止的字符串?

我一直看到const char *以这种方式使用,并对libc这种效果做出假设。

在 API 审查期间,我说const char *应该假设是一个NULL终止的字符串,然后有人说它不一定是 - 所以不能做任何假设。

我们仍然可以做出防御性的假设,但我们可以编写更少的代码。

鉴于所有以libc这种方式使用它的函数,C 或 C++ ISO 标准中是否有任何内容表明它必须NULL终止字符串?

c++ parameters c-strings

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

什么是std :: vector <T> :: iterator的提升等价物?

什么是相当于

std::vector<T> v;  // Assume this was initialized properly
std::vector<T>::iterator it, e = v.end();
for ( it = v.begin() ; it != e ; ++it ) {
    // do something with 'v' via *it
}
Run Code Online (Sandbox Code Playgroud)

我正在使用增强矢量

boost::numeric::ublas::vector<T> v;
Run Code Online (Sandbox Code Playgroud)

有人可以使用适当的boost语法匹配上面的示例吗?

c++ boost

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

是否有一个与“vsnprintf”类似的函数可以与“std::string”一起使用

我没有看到可以std::string消耗va_list. va_list是否有将 a 转换为 a 的通用解决方案std::string

我见过以下形式的解决方案:

std::string vstring (const char * format, ...) {
  std::string result;

  va_list args;
  va_start(args, format);

  char buffer[1024];
  vsnprintf(buffer, sizeof(buffer), format, args);
  result = std::string(buffer);

  va_end(args);
  return result;
}
Run Code Online (Sandbox Code Playgroud)

这感觉容易出错并且很hacky。有没有办法直接std::string从 a 构建或操作va_list

注意:上述解决方案的主要问题是需要猜测我需要的内存量。我不想浪费太多或没有足够的东西。理想情况下,我想要一种std::string可以正常工作的样式不透明分配。

注意:我需要一个不需要第三方库支持的解决方案。

c++ variadic-functions stdstring

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

如何制作多架构 Docker 镜像?

我为 CLI 实用程序创建了一个 Dockerfile,它在我的 Linux 笔记本电脑上运行良好。我尝试在安装了 Docker 的 Raspberry Pi 上运行容器,但它不起作用。

我知道无数公司创建图像来支持多种架构,他们是如何做到这一点的?

我想知道,因为我希望 CLI 的容器可以部署到 Raspberry Pi 以及我的 Linux 笔记本电脑。

linux x86 arm raspberry-pi docker

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