草庐IT

type-specifier

全部标签

c++ - "Use of undefined type"带有 unique_ptr 以转发声明的类和默认移动构造函数/赋值

在下面的代码中,是避免编译错误并在A.cpp中手动包含B.h实现移动构造函数/赋值的唯一方法吗?//A.h#includeclassB;//implementationsomewhereinB.h/B.cppclassA{public:A()=default;~A()=default;A(constA&)=delete;A&operator=(constA&)=delete;A(A&&)=default;A&operator=(A&&)=default;private:std::unique_ptrm_b;};VisualStudio2015给出“错误C2027:使用未定义类型”,因为

c++ - 如何比较 time_t 和 std::filesystem::file_time_type

我正在将一些代码从boost::filesystem转换到std::filesystem。以前使用的代码boost::filesystem::last_write_time()它返回一个time_t,因此直接与我已经持有的time_t对象进行比较是微不足道的。顺便说一句,我持有的这个time_t是从很久以前保存的文件内容中读取的,所以我坚持使用这种“自unix纪元以来的时间”类型。std::filesystem::last_write_time返回std::filesystem::file_time_type.是否有可移植的方法将file_time_type转换为time_t,或者以其

c++ - 错误 : Field has an incomplete type

quaternion.h:15:错误:字段“v”的类型不完整嗨!我陷入了一个我似乎无法解决的错误。下面是我的代码:#ifndefQUATERNION_H#defineQUATERNION_H#include"vec3.h"classVec3;classQuaternion{public:Quaternion(Vec3v);Quaternion(doublew,Vec3v);Vec3v;我的Vec.h看起来像这样:#ifndefVEC3_H#defineVEC3_H#include"point.h"#include"quaternion.h"#includeclassQuaternion

c++ - 'must have an argument of class or enumerated type'到底是什么意思

我有一个头文件和一个.cpp文件。我需要为我的.h文件编写函数,但在我完全完成骨架.cpp文件之前出现错误。金钱.h#ifndefMONEY_H#defineMONEY_H#include#includeusingnamespacestd;classMoney{public:Money(intdollars,intcents);Moneyoperator+(constMoney&b)const;Moneyoperator-(constMoney&b)const;Moneyoperator*(doublem)const;Moneyoperator/(doubled)const;voidp

c++ - 为什么专门化 type_trait 会导致未定义的行为?

讨论根据标准§20.10.2/1Header概要[meta.type.synop]:1Thebehaviorofaprogramthataddsspecializationsforanyoftheclasstemplatesdefinedinthissubclauseisundefinedunlessotherwisespecified.这个特定的子句与STL应该是可扩展的一般概念相矛盾,并阻止我们扩展类型特征,如下例所示:namespacestd{templatestructis_floating_point>:std::integral_constant::type>::value

c++ - 在 Windows 7 上使用 SHA2-512 (CALG_SHA_512) 返回 "Invalid Algorithm Specified"

我尝试在Windows7上使用SHA2-512和CryptoAPI,但是,调用CryptCreateHash失败,GetLastError()=2148073480=0x80090008,即“无效算法”指定的”。根据https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549%28v=vs.85%29.aspxSHA2应该从WindowsXPSP3开始可用。这是我使用的代码:HCRYPTPROVhCryptProv;CryptAcquireContext(&hCryptProv,nullptr,nullptr,PRO

c++ - 重载函数以获取 true_type 或 false_type 参数与使用 if 检查?

与使用一个if语句相比,重载方法/函数以采用true_type或false_type参数有什么好处吗?我看到越来越多的代码使用带有true_type和false_type参数的重载方法。使用if语句的简短示例voidcoutResult(boolmatch){if(match)cout与使用重载函数相比:voidcoutResult(true_type){cout 最佳答案 您的第二个示例代码无法编译,这是编译时重载解析和运行时条件分支之间“选择”哪个不同的症状要执行的代码。“重载函数以获取true_type或false_type参

c++ - 错误 MSB8008 : Specified platform toolset (v120) is not installed or invalid

这个问题在这里已经有了答案:WhatdoIneedtoinstallforC++project/VS2013onTeamCityserverorTeamFoundationBuildService?(1个回答)关闭8年前。我已经下载了一个C++项目。我打开了.sln文件并尝试构建项目。我收到以下错误:错误MSB8008:指定的平台工具集(v120)未安装或无效。请确保选择了受支持的PlatformToolset值。我已经检查过平台工具集是否设置为v120。这里有什么问题?

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance ORACLE instance started.

        在linux系统中使用oracle的sqlplus启动数据时,出现ORA-32004的错误,下面是我遇到这个错误的解决办法,很详细,小白也能看懂。1,首先就是在sqlplus中使用startup(前提是已经链接成功),出现了这个错误,原因是使用了不推荐的或者已经废弃的参数(deprecated )。2,查看错误日志。3,错误日志中的Action叫我们去查看日志,我们就要去查看日志去解决问题(遇到错误学会查看错误日志是一个好的习惯)        使用该语句可以查看日志文件在自己虚拟机中的哪个位置。showparameterdump4,我们cd到该路径下,发现了我们所需要查看的日

c++ - 如何处理: redeclaration of C++ built-in type ‘char16_t’

在C++11项目中,我必须使用外部C库。该库主头文件定义typedefuint16_tchar16_t;因此,包含该库的C++程序编译失败,并显示消息:redeclarationofC++built-intype‘char16_t’我唯一的想法是重新打包整个库,但是因为char16_t在这个库中很普遍,所以会非常耗时(如果可能的话)。有没有一些明智的方法来处理这个问题?编辑:我还有另一个想法,即删除有问题的行并将每次出现的char16_t替换为uint16_t,但我将不得不修改第三方库header,我并不特别喜欢这个想法(可能会有更多类似的错误)。所以我也想知道在包含头文件时是否有一些