草庐IT

ctor-initialiser

全部标签

c++ - 显式默认的复制 ctor 生成比手写等效代码更好的代码

我发现生成的代码有所不同,这取决于我是显式默认复制构造函数还是手写相同的东西。这是一个简单的类,只包含一个int并在其上定义了一些算术运算符。clang和g++都以类似的方式处理这种情况,所以这让我想知道这是否有潜在的语言要求,如果有,它在做什么?如果可能的话,在标准中寻找引文。:)为了展示这一点,我以两种方式编写了average()函数,对原始ints和Holders进行操作。我希望两者生成相同的代码。这是输出:显式默认的复制构造函数:average(Holder,Holder):addesi,edimoveax,esishreax,31addeax,esisareaxretaver

node.js - Nodejs子进程: write to stdin from an already initialised process

我正在尝试使用Node的child_process生成一个外部进程phantomjs,然后在初始化后向该进程发送信息,这可能吗?我有以下代码:varspawn=require('child_process').spawn,child=spawn('phantomjs');child.stdin.setEncoding='utf-8';child.stdout.pipe(process.stdout);child.stdin.write("console.log('HellofromPhantomJS')");但我在标准输出上得到的唯一信息是phantomjs控制台的初始提示。phant

java - 为什么一个方法引用了 "throws"... 也抛出的 ctor?

我正在寻找一种优雅的方式来创建依赖注入(inject)工厂。在我的例子中,工厂只需要调用一个单参数的构造函数。我找到了answer概述如何使用Function用于此类目的。但我的问题是:在我的情况下,我的ctor声明抛出一些检查异常。我没有得到:使用对该构造函数的方法引用创建该Function不起作用。如:importjava.util.function.Function;publicclassMcve{publicMcve(Strings)throwsException{//whatever}publicstaticvoidmain(String[]args){Functionmcv

c++ - thread_local 静态成员模板定义 : initialisation fails with gcc

当C++类中的静态成员同时是thread_local和成员模板时,它不会被初始化。#include#includeclassA{public:templatethread_localstaticstd::unordered_mapm;};templatethread_localstd::unordered_mapA::m{};intmain(){//A::m=std::unordered_map{};//solvestheproblemstd::cout.bucket_count().insert({1,2});//causesSIGPFE(hashmodulobucket_count

c++ - 自动生成默认/复制/移动 ctor 和复制/移动赋值运算符的条件?

我想在编译器通常自动生成默认构造函数、复制构造函数和赋值运算符的条件下刷新我的内存。我记得有一些规则,但我不记得了,也找不到网上有信誉的资源。有人可以帮忙吗? 最佳答案 在下文中,“自动生成”的意思是“隐式声明为默认值,但未定义为已删除”。在某些情况下,特殊成员函数已声明,但定义为已删除。如果没有用户声明的构造函数(第12.1/5节),则会自动生成默认构造函数。如果没有用户声明的移动构造函数或移动赋值运算符,则自动生成复制构造函数(因为在C++03中没有移动构造函数或移动赋值运算符,这在C++中简化为“始终”03)(§12.8/8)

ruby - 有什么方法可以用 "initialise"而不是 "initialize"来初始化对象?

所以,因为我是英国人,所以我总是使用名称initialise()初始化对象,并且经常收到错误Errorininitialize:(wrongnumberofarguments(givenn,expected0))。我可以做一些元编程来为所有尝试调用initialize()的对象制作initialize()吗? 最佳答案 这样的事情可能会奏效;但是任何阅读或使用您的代码的人都可能讨厌您。:PclassBasicObjectaliasamerican_initializeinitializeprivatedefinitialize(*a

c++ - 删除copy-ctor和copy-assignment - public、private还是protected?

为了使对象不可复制,我们可以显式删除其复制构造函数和复制赋值运算符。我的问题是:什么是正确的做法-在类(class)的public、private或protected部分?而且-这个选择有什么不同吗? 最佳答案 whatistherightplacetodoit-inthepublic,privateorprotectedsectionoftheclass?我会将它们放在public部分。这是因为删除构造函数或赋值运算符与将它们设为private/protected是正交的;当这些没有被删除时,它们默认是public的。在我看来,将

c++ - 删除copy-ctor和copy-assignment - public、private还是protected?

为了使对象不可复制,我们可以显式删除其复制构造函数和复制赋值运算符。我的问题是:什么是正确的做法-在类(class)的public、private或protected部分?而且-这个选择有什么不同吗? 最佳答案 whatistherightplacetodoit-inthepublic,privateorprotectedsectionoftheclass?我会将它们放在public部分。这是因为删除构造函数或赋值运算符与将它们设为private/protected是正交的;当这些没有被删除时,它们默认是public的。在我看来,将