草庐IT

is_readable

全部标签

c++ - 将 ifstream 转换为 bool 和使用 ifstream::is_open() 之间的区别

也许是个伪问题,但我需要一个明确的答案。这些函数的返回有什么不同吗intFileExists(conststd::string&filename){ifstreamfile(filename.c_str());return!!file;}intFileExists(conststd::string&filename){ifstreamfile(filename.c_str());returnfile.is_open();}所以换句话说,我的问题是:将fstream转换为bool会给出与fstream::is_open()完全相同的结果吗>? 最佳答案

c++: 'std::is_fundamental' 的替代方案?

在模板类中的函数中,我试图区分基本类型和其他类型。在C++11中你可以这样做:if(std::is_fundamental::value){//Treatitasaprimitive}else{//Treatitotherwise}如果我错了,请纠正我,这不仅在C++11中。在早期版本的c++中是否有替代方案? 最佳答案 你可以使用Boost'stypetraits在C++03中是这样的:#include...if(boost::is_fundamental::value){//Treatitasaprimitive}else{//

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

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

c++ - 继承与聚合以及 "has-a"与 "is-a"。

在我的代码中,我发现使用类似混合的继承来组合具有不同block的对象很有用。我有:className{public:typedefint32_tvalue_type;public://ctorsanddtorsvoidset_value(value_typevalue){value_=value;}constvalue_type&value()const{returnvalue_;}private:value_typevalue_;};classNamedObject{public:voidset_name(constName&name){name_=name;}constName&n

c++ - 语句 "a class is an object even if not instantiated"是什么意思?

我是一名学习Ruby的C++程序员。在一本初学者书中,我读到:“一个类本身就是一个对象,即使您不直接实例化它也是如此。”我不知道怎么解释。 最佳答案 在C++中,除了typeid等,类没有语言可见的运行时表示。你可以说classFoo{};,但你不能说&Foo。(您可以获取typeinfo对象的typeid/地址,它是类对象的SCSS版本)。在Ruby中,类是对象。任何你能用一个对象做的事情,你都可以用一个类来做,因为它是一个对象。例如,在Ruby中,您可以foo.send(...)到任何对象foo。由于类是一个对象,因此您也可以使

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++ - 从 C++ 调用 NSLog : "Format string is not a string literal (potentially insecure)"

当我从C++调用NSLog时,Xcode提示传递给NSLog的格式字符串不是文字字符串。这是触发警告的一行代码:NSLog(CFSTR("Leaking?"));我不知道有什么方法可以在C++中编写NSString文字,而且我没有看到可以在项目设置中关闭的相关警告。有没有办法在不触发此消息的情况下从C++调用NSLog?我正在使用Xcode4.2.1。编辑:这确实是C++代码。我通常避免使用Objective-C++,坚持使用Objective-C或普通的旧C++,因为没有官方文档说明什么在Objective-C++中有效,什么无效。我只发现模糊的警告(例如)STL的某些部分可能存在问

c++ - is_lock_free 未在 gcc 4.7.2 的 std::atomic<T> 中定义?

我遇到这个编译器错误functionstd::atomic::is_lock_free()const:error:undefinedreferenceto'__atomic_is_lock_free'whencompilingcodelikebelowusinggcc4.7.2onlinux.structS{inta;intb;};std::atomics;cout 最佳答案 AtomicAPIisn'tcompleteinGCC4.7:Whenlockfreeinstructionsarenotavailable(eitherth

python ‘float‘object is not iterable

目录Python'float'objectisnotiterable错误背景错误示例错误解决方法结论应用场景错误解决方法介绍迭代(Iteration)迭代的工作方式迭代可迭代对象迭代其他数据结构自定义可迭代对象Python'float'objectisnotiterable在Python中,​​'float'objectisnotiterable​​是一个常见的错误消息。它在迭代(iteration)过程中表示发生了错误,因为我们试图对浮点数进行迭代操作,但是浮点数是不可迭代的。错误背景在Python中,可迭代对象(iterable)是一种能够被遍历(iterating)的数据类型,例如列表(

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