小编Mar*_*tin的帖子

名称空间中的extern"C"

你知道为什么下面的代码无法编译吗?

#include <iostream>

namespace C {
    extern "C" {
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> // open()
#include <unistd.h> // read()
    }
}

int main(int argc, char** argv) {
    int fd = C::open("./main.cpp", O_RDONLY);
    C::read(fd, 0, 0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

GCC 4.4编译器的错误是:

error: ‘read’ is not a member of ‘C’
Run Code Online (Sandbox Code Playgroud)

c++

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

模板“复制构造函数”不会阻止编译器生成的移动构造函数

考虑以下程序及其中的注释:

template<class T>
struct S_ {
    S_() = default;

    // The template version does not forbid the compiler
    // to generate the move constructor implicitly
    template<class U> S_(const S_<U>&) = delete;

    // If I make the "real" copy constructor
    // user-defined (by deleting it), then the move
    // constructor is NOT implicitly generated
    // S_(const S_&) = delete;
};

using S = S_<int>;

int main() {
    S s;
    S x{static_cast<S&&>(s)};
}
Run Code Online (Sandbox Code Playgroud)

问题是:为什么用户自定义模板构造函数(当U = T时有效地充当副本构造函数)阻止了编译器生成move构造函数,相反,如果我定义了“真实”副本,构造函数(通过删除它),那么move构造函数不是隐式生成的(程序无法编译)吗?(可能的原因是,当T = U?时,“模板版本”也不遵守复制构造函数的标准定义。) …

c++ c++11

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

渲染img html组件时重定向或显示错误时出错

html从请求到我的自制服务器返回一个简单的页面:

<html>
  <head>
    <title>Server Sample</title>
  </head>
  <img src="/stream.jpeg">
</html>
Run Code Online (Sandbox Code Playgroud)

img在页面中呈现图像,在路径/stream.jpeg下向服务器发出第二个请求以获取实际图像数据.但是,如果此请求由于某些原因而失败,我想向用户显示错误页面或某种消息.从失败请求的上下文重定向或生成html错误页面似乎不起作用,可能是因为初始页面需要图像.在这种情况下,页面显示"空"img标记而不是想要的错误.

解决这个问题最便携的方法是什么?如果可能的话,我更喜欢使用html解决方案,但也允许使用javascript.

请注意,我编写的服务器非常简单,动态生成非常简单的页面,它不是复杂服务器可以提供的那种扩展.

html javascript

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

是否可以为unordered_map指定订单?

unordered_map中确实没有保证订单吗?请问这是因为我想为一个指定的顺序unorderded_map,使得它可以从迭代容器begin()end()根据指定的顺序(同时保留的散列访问单个元件的效率,在全球范围而言).

c++

0
推荐指数
2
解决办法
99
查看次数

标签 统计

c++ ×3

c++11 ×1

html ×1

javascript ×1