小编nob*_*bar的帖子

“std::ostream”没有名为“close”的成员

std::ostream没有成员函数close()。我不应该允许关闭什么类型的流?

\n\n

例如,也许我想关闭std::cout以防止进一步写入。

\n\n
std::cout.close(); // \xe2\x80\x98std::ostream\xe2\x80\x99 has no member named \xe2\x80\x98close\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我使用 C 库,我可以stdout这样结束:

\n\n
fclose(stdout); // no problem\n
Run Code Online (Sandbox Code Playgroud)\n\n

close()那么排除该成员背后的想法是什么std::ostream

\n\n
\n\n

有关的:

\n\n\n

c++ iostream

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

阈值是绝对值

我有以下功能:

char f1( int a, unsigned b ) { return abs(a) <= b; }
Run Code Online (Sandbox Code Playgroud)

对于执行速度,我想重写如下:

char f2( int a, unsigned b ) { return (unsigned)(a+b) <= 2*b; } // redundant cast
Run Code Online (Sandbox Code Playgroud)

或者使用此签名,即使对于非负面也可能具有微妙含义b:

char f3( int a, int b )      { return (unsigned)(a+b) <= 2*b; }
Run Code Online (Sandbox Code Playgroud)

这两种替代方案都可以在一个平台上进行简单的测试,但我需要便携式.假设非负b且没有溢出风险,这是典型硬件和C编译器的有效优化吗?它对C++也有效吗?


注意:作为C++在gcc 4.8 x86_64上使用-O3,f1()使用6个机器指令并f2()使用4.指令f3()与那些相同f2().同样感兴趣的是:如果b以文字形式给出,则两个函数都编译为3条指令,这些指令直接映射到指定的操作f2().

c c++ micro-optimization undefined-behavior language-lawyer

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

我设置什么选项来使用 main() 而不是 wmain()

我有一个wmain()用作入口点的工作 Visual Studio 项目。我想main()改用。

如果我只是将函数签名更改为int main(),我会得到:

错误 LNK2019:函数“void __cdecl mainCRTStartupHelper(struct HINSTANCE__ *,unsigned short const *)”中引用了未解析的外部符号 _wmain

我需要更改什么选项才能使链接成功?

linker-errors visual-c++

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

通过@Bean 提供的 RestTemplateBuilder 流式上传缓冲完整文件

我正在构建一个用于上传大文件(数 GB)的反向代理,因此想要使用不缓冲整个文件的流模型。大缓冲区会引入延迟,更重要的是,它们可能会导致内存不足错误。

我的客户端类包含

@Autowired private RestTemplate restTemplate;

@Bean
public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {

    int REST_TEMPLATE_MODE = 1; // 1=streams, 2=streams, 3=buffers

    return 
        REST_TEMPLATE_MODE == 1 ? new RestTemplate() :
        REST_TEMPLATE_MODE == 2 ? (new RestTemplateBuilder()).build() :
        REST_TEMPLATE_MODE == 3 ? restTemplateBuilder.build() : null;
}
Run Code Online (Sandbox Code Playgroud)

public void upload_via_streaming(InputStream inputStream, String originalname) {

    SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
    requestFactory.setBufferRequestBody(false);
    restTemplate.setRequestFactory(requestFactory);

    InputStreamResource inputStreamResource = new InputStreamResource(inputStream) {
        @Override public String getFilename() { return originalname; }
        @Override public long contentLength() { return -1; …
Run Code Online (Sandbox Code Playgroud)

streaming spring reverse-proxy resttemplate spring-boot

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

堆栈溢出 - 静态内存与动态内存

如果int m[1000000];在C/C++的main函数内部编写,它将在堆栈溢出时收到运行时错误.相反,如果你vector<int> m;在那里写,然后push_back 1000000元素,它将运行正常.

我很好奇为什么会这样.他们都是本地记忆,不是吗?提前致谢.

c++ stack-overflow stack

4
推荐指数
3
解决办法
2329
查看次数

确定 numpy 数组的字节序

我有一个numpy.array,我想找出底层表示中使用的字节顺序。

这里byteorder记录一个属性,但没有一个给定的示例显示它与数组一起使用。

python numpy endianness

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

如何配置弹簧千分尺标签

这篇博文“Micrometer:Spring Boot 2 的新应用程序指标收集器”提到了“维度的重要性”

但是,它没有包含如何在 Spring Boot 应用程序中设置关联标签的足够示例。

现在,我正在使用 Spring Boot 2 的 Micrometer 接口来提供 Prometheus 就绪的输出,而无需进行任何基于 Java 的配置。例如,设置“主机”标签是否需要我编写一些代码?那会是什么样子?

这是我的整个配置:

management:
  metrics:
    export:
      prometheus:
        enabled: true
  endpoints:
    web:
      exposure:
        include: info,health,metrics,prometheus
Run Code Online (Sandbox Code Playgroud)

spring-boot-actuator prometheus spring-micrometer

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

如何绘制数值变量的直方图?

我想生成一个数字变量的简单直方图X

我很难找到一个明确的例子。

由于直方图的意义比美观更重要,因此我更愿意指定 bin 大小而不是让工具来决定。请参阅:数据科学家:停止随机分箱直方图

splunk

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

将 SystemVerilog $display 发送到 stderr

我正在使用Verilator将用 SystemVerilog 编写的算法合并到可执行实用程序中,该实用程序操作通过stdin和传递的 I/O 流stdout。不幸的是,当我使用 SystemVerilog$display()函数时,输出会转到stdout. 我希望它能继续使用,stderr这样stdout我的其他用途就不会受到污染。

我怎样才能做到这一点?

verilog stdout stderr system-verilog verilator

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

内联使用成员对象的非默认显式构造函数

在C++ 11(或未来)中,是否有以下简单的变体是合法的?

class A
   {
public:
   std::vector<char> b(123); // declare a vector with 123 elements
   };
Run Code Online (Sandbox Code Playgroud)

我能找到的最近的有点笨重,也许效率低下......

class A
   {
public:
   std::vector<char> b = std::vector<char>(123);
   };
Run Code Online (Sandbox Code Playgroud)

我试图避免使用初始化列表.我更喜欢将声明和初始化b合并为一行代码.矢量将始终具有相同的大小.

std::vector在这个例子中使用,但可能答案更普遍适用.


为了更好地衡量,这是gcc版本4.8 的错误消息:

错误:数字常量std :: vector b之前的预期标识符(123);

这是clang3.7版本的消息:

错误:期望参数声明符std :: vector b(123);

c++ c++11 c++17

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