草庐IT

point_types

全部标签

c++ - 使用 chrono 将 time_point 转换为特定持续时间

/*definitionofstartandendstd::chrono::time_pointstart;std::chrono::time_point_end;*/std::chrono::time_pointsomeclass::spf(){_end=std::chrono::system_clock::now();std::chrono::time_pointtime(_end-start);start=std::chrono::system_clock::now();returntime;}unsignedintsomeclass::secs(){returnstd::chr

c++ - "Type"不引用 C++ 上的值

我在OpenFrameworks图稿中遇到此错误。但似乎是一个简单的C++问题。ofVec2fdoesnotrefertoavalue当然,我在使用指针时遇到了问题,但我不明白为什么。我试图改变&->*Canvas4.cppvoidCanvas4::createStuff(){ballCollection.clear();for(inti=0;i.5)dir=-1;myBall=newBall(org,loc,radius,dir,offSet);ballCollection.push_back(*myBall);}//这是Ball类的构造函数;Ball::Ball(ofVec2f&_

C++ : Check if the template type is one of the variadic template types

这个问题在这里已经有了答案:Checkifatypeispassedinvariadictemplateparameterpack(3个答案)关闭7年前。假设我们有函数:templatevoidfoo(){...};检查“Kind”类型是否是C++(包括C++1z)中的“Kinds”类型之一的最简单方法是什么?

c++ - 使用 chrono::time_point 获取当前小时数和分钟数

我一直试图找到一个使用std::chrono的示例,它只获取一个chrono::time_point并将小时数和分钟数提取为整数。我有:std::chrono::system_clock::time_pointnow=std::chrono::system_clock::now();但我不知道如何提取小时和分钟(从午夜开始)?我正在寻找类似的东西:inthours=now.clock.hours(); 最佳答案 这是免费的,open-sourcedatelibrary这将为你做这件事。如果您想确切了解它是如何完成的,请随时检查代码。

c++ - 为什么 `const type& variable` 作为函数输入?

我正在将一些函数从Matlab转换为C++,其中有一些与矩阵有关。我在Internet的某处找到了这个简单的函数:typedefstd::vector>Matrix;Matrixsum(constMatrix&a,constMatrix&b){size_tnrows=a.size();size_tncols=a[0].size();Matrixc(nrows,std::vector(ncols));for(inti=0;i谁能解释一下为什么他们使用constMatrix&a而不是Matrixa作为输入?他们是否习惯使用它,或者使用它有什么好处,因为我没有看到2个版本(constMatr

c++ - 添加虚拟删除错误 : type 'base' is not a direct base of derived class

考虑以下示例代码:#includeusingnamespacestd;classbase{public:base(){cout这给出了错误:error:type`base'isnotadirectbaseof`derived2'为什么会出现这个错误?如果我将基类设为虚拟,则错误不再存在。这是什么原因? 最佳答案 因为base不是derived2的直接基类。您必须为您的直接基础提供构造函数,在本例中为derived1。虚拟基地除外。它们总是在叶类中初始化,否则您可能会为同一个基类调用多个构造函数。因此,如果您使base成为虚拟的,您不

C++ 虚拟类 : interesting point

请告诉我为什么以下程序的输出如下所示。我没有得到C++中的虚拟类。观察下面的代码:classB{public:B(charc='a'):m_c(c){}public:charget_c()const{returnm_c;}voidset_c(charc){m_c=c;}private:charm_c;};classC:publicB{};classD:publicB{};classE:publicC,publicD{};intmain(){Ee;C&c=e;D&d=e;std::coutO/P:aa我希望输出是ab。获得“aa”的原因是什么?如果我有c.set_c('b')而不是d.s

C++ 错误 : Expected a type specifier

当我尝试像这样使用LoggerStream时,我得到“需要一个类型说明符”:constLoggerStreamlogger(L"测试组件");这是我尝试使用LoggerStream的地方:#include"Logger.h"#include"TestComponent.h"namespaceophRuntime{structTestComponent::TestComponentImpl{private:LoggerStreamlogger(L"TestComponent");NO_COPY_OR_ASSIGN(TestComponentImpl);};TestComponent::T

c++ - 让 std::complex<double> 通过 std::is_floating_point 测试

我想要类型double,float,complex和complex通过static_assert健康)状况。我想static_assert(std::is_floating::value,"somemessage")可以解决问题,但是复杂类型没有通过这个测试(至少在gcc-4.10下是这样)。我应该添加什么谓词来确保这四种类型(可能还有longdoubles)被允许作为模板实例化,但没有别的? 最佳答案 为标准库类型特征类添加特化通常是非法的,即使是用户定义的类型也是如此。§20.10.2[meta.type.synop]/p1:T

c++ - 用户定义类型的 std::common_type 特征

自C++11以来,引入了类型特征std::common_type。std::common_type确定其所有模板参数之间的公共(public)类型。在C++14中,还引入了辅助类型std::common_type_t以缩短使用std::common_type类型特征的代码。std::common_type在重载算术运算符中特别有用,例如,templatestd::common_type_toperator+(T1const&t1,T2const&t2){returnt1+t2;}如果它的模板参数是内置类型(例如,int、double),它会工作得很好。但是,如果我将用户定义的类型作为模