草庐IT

可选性

全部标签

c++ - 为什么 uintptr_t 和 intptr_t 是 C(和 C++)标准中的可选类型?

C99(及更高版本的标准)标准要求某些类型在header中可用.对于精确宽度,例如int8_t,int16_t等等...,它们是可选的,并且在标准中是有动机的。但对于uintptr_t和intptr_t类型,它们也是可选的,但我不认为它们是可选的而不是必需的。 最佳答案 在某些平台上,指针类型的大小比任何整型都大得多。我相信此类平台的一个示例是IBMAS/400,其虚拟指令集将所有指针定义为128位。此类平台的最新示例是Elbrus。它使用128位指针,这些指针是硬件描述符而不是普通地址。

c++ - 具有可选返回值的 lambda 参数

我正在尝试编写类似std::for_each的函数,那除了正常用法外,还可以取std::function.错误的返回值意味着我想跳出循环。下面的代码是我到目前为止得到的。第二次调用a.visit([&](int)->void)评估!visitor(i)时不编译。是否有可能完成这项工作,还是我找错了树?我正在使用MSVC2010,但希望代码通常与C++11兼容。#include#include#includestructA{std::list_lst;templatevoidvisit(_Fvisitor){for(std::list::const_iteratorit=_lst.beg

C++ 表示可选对象

我有一个C++project.我从事的项目是自学用C++构建一个半现实的程序。它以递归方式从网站下载内容。每个下载都有一个用于下载内容的URL,以及一个用于引用者的URL(或从中提取内容的页面的URL)。除非它是第一个URL,否则总是有一个引荐来源网址。我一直在作弊,只是将第一个URL当作它自己的引荐来源网址。我最近更改了URL类以具有空白(或空)表示。这感觉像是黑客攻击。有没有一种方法可以在C++中表示可选对象而无需:使用指针?为无效对象浪费空间?或制作对象的“空白”版本? 最佳答案 你可以使用boost::optional。bo

c++ - 为什么覆盖在 C++ 中是可选的?

我了解C++override的目的,但是与其他默认需要使用它的高级语言相比,它的实现有点令人困惑。C++11wikipage将其描述为“声明符属性的技术标识符”,但没有详细说明为什么它不仅仅是该语言的关键字。 最佳答案 保持与C++03的向后兼容性是可选的。使其成为非可选的会破坏所有代码*。同样,将override设为关键字会破坏任何使用名称override的代码。好的,不是字面上的全部代码,而是很多。 关于c++-为什么覆盖在C++中是可选的?,我们在StackOverflow上找到一

c++ - 带有可选图形用户界面的 Qt 应用程序

我打算使用Qt编写一些图像处理程序,我希望它能够在非图形用户界面模式(守护进程模式?)下运行。我受到VLC播放器的启发,它是“典型的”GUI程序,您可以在其中使用GUI对其进行配置,但是当它在没有GUI的情况下运行时,您也可以在non-gui选项中运行它。然后它使用一些在GUI模式下创建的配置文件。问题是这样的程序应该怎么设计?应该是一些程序核心,它独立于GUI并且取决于它与GUI界面连接的选项? 最佳答案 是的,您可以使用QCommandLineParser为二进制文件使用“headless”或“gui”选项.请注意,它仅从5.3

c++ - Protocol Buffers (protobuf) v3.0.0-alpha-2 中的可选字段和约束

我目前正在使用Google的v3.0.0-alpha-2ProtocolBuffers.据我所知,v3删除了required关键字,extensions字段的关键字和默认值以简化原型(prototype)语言。我不理解的是proto3中optional关键字的含义。示例:syntax="proto3";packagefw.example;messageExampleMessage{optionalstringoptional_string=1;stringnormal_string=2;}问题:optional_string和normal_string有什么区别除了名称和标签?我已经阅

c++ - 使数组成为 C++ 函数的可选参数

在c++中,你可以像这样把一个参数设为可选:voidmyFunction(intmyVar=0);如何使用数组来做到这一点?voidmyFunction(intmyArray[]=/*WhatdoIputhere?*/); 最佳答案 您可以使用nullptr或指向全局常量数组的指针来表示默认值:voidmyFunction(intmyArray[]=nullptr){//^^^^^^^}这是因为intmyArray[]在用作函数参数时被类型调整为int*指针。 关于c++-使数组成为C+

php - 在展开可选值 JSON 序列化时发现 nil

我执行NSURLSession从PHP中获取数据,这是一个JSON。当我执行NSJSONSerialization并将其存储为NSArray时,一切正常,但是当我尝试访问其中的一个元素以将其放入TableView时,它因发现错误而崩溃展开可选值时为nil。它返回的JSON如下所示:[{"title":"data","value":"data"},...]我用来获取值的代码是:self.arrayJSON[indexPath.row]["title"]当我在Xcode控制台中尝试这个时返回这个:▿Optional(somedata)-Some:somedata编辑:JSON解析代码:le

ios - Swift:将 Int 转换为 UInt32,以及如何解包可选

我是swift的新手,我只是想构建一些东西来试水。这与我之前的一个问题有关。我正在构建一些代码以从UITextField对象获取用户输入,基本上我试图弄清楚如何将Int转换为UInt32,但我在SO或其他方面搜索的任何内容都没有真正帮助。这是我的代码//这是我调用用户输入的地方。varrangeInput:Int?{get{returnInt(rangeInputTextField?.text??"")}//这是我创建一个范围的函数,并调用一个超出该范围的随机数letviewController=ViewController()varx=ViewController().rangeIn

ios - xcode 7 swift 在 TableView 单元格中展开可选时发现 nil

我很抱歉又问了另一个“在TableViewCell中发现nilunwrappingoptional”的帖子,但是经过数小时的调试和阅读这里的其他此类帖子后,我仍然卡住了。我想我已经解决了所有常见的错误,但仍然无法正常工作。作为起点,只要我在单元格中使用默认标签,一切正常,用“cell.textLabel!.text=mystring”引用。我还有另一个案例,我用图像和标签自定义了原型(prototype)单元格,效果也很好。在当前情况下,我有一个普通的UIViewController,其中嵌入了一些其他View和一个UITableView。普通的UIViewController被设置为