草庐IT

NS_INLINE

全部标签

c++ - 模板 `inline` 函数的静态局部变量

这个问题在这里已经有了答案:Staticvariableusedinatemplatefunction(3个答案)关闭5个月前。static如果我的理解是正确的,C++中inline函数的局部变量保证像单个全局变量一样存在。如果inline函数是一个模板,编译器可以生成该函数的多个版本,这是否同样适用?

c++ - 链接器实际上如何处理多重定义的 `inline` 函数?

在C和C++中,具有外部链接的inline函数当然可以在链接时有多个可用定义,假设这些定义全部(希望)相同。(当然,我指的是使用inline链接规范声明的函数,而不是编译器或链接时优化器实际内联的函数。)那么当常见的链接器遇到一个函数的多个定义时,它们通常做什么呢?特别是:是否所有定义都包含在最终的可执行文件或共享库中?函数的所有调用是否都链接到相同的定义?一个或多个C和C++ISO标准是否要求回答上述问题?如果不是,大多数常见平台是否做同样的事情?附言是的,我知道C和C++是不同的语言,但它们都支持inline,并且它们的编译器输出通常可以通过相同的链接器链接(例如GCC的ld),所

c++ - boost 是否使用 C++11 "inline namespaces"来避免运行时出现 ABI 不兼容错误?

C++11具有称为“内联命名空间”的功能,它允许作者在链接时强制执行ABI兼容性,而无需篡改API。例如,来自@HowardHinnant的这些有用的答案解释了libc++如何使用内联命名空间:Usinglibstdc++compiledlibrarieswithclang++-stdlib=libc++Whycan'tclangwithlibc++inc++0xmodelinkthisboost::program_optionsexample?我的问题是:boost是否利用了这个C++11特性?看起来一些boost开发者至少是thinking最终一次使用它。但是那个线程很旧。它曾经发

c++ - C4711 "function selected for inline expansion"Visual C++ 警告有什么用?

AccordingtoMSDNVisualC++可以发出C4711警告:如果编译器决定内联未标记为内联的函数,则选择函数X进行内联扩展。我不明白这个警告有什么用。假设我编译我的代码并看到这个警告。怎么办?我为什么要关心? 最佳答案 默认情况下未启用。如果出于某种原因你想知道什么时候内联函数,你可以打开它。这可能是相关的,例如,代码大小非常重要,或者您希望从模块外部跳入函数,或者您需要程序集以某种方式显示。它还可以帮助追踪代码生成错误。这纯粹是信息性的。 关于c++-C4711"funct

c++ - 我可以完全停止使用 "inline"吗?

这个问题在这里已经有了答案:whatis/arethepurpose(s)ofinline?(9个回答)关闭9年前。因为它是否内联我的函数完全取决于编译器,我是否可以完全停止使用此关键字(假设它无论如何都会内联所有内容)?

c++ - OCLint ASTMatcher 规则。匹配 NS_ENUM

我正在尝试创建一个匹配typedefenum和typedefNS_ENUM声明的OCLint规则,但收效甚微。我有一个Objective-C文件(TestClass.m),其中包含以下枚举声明:typedefNS_ENUM(NSInteger,TestEnum){TestEnumNone,TestEnumSome,TestEnumAll};typedefenum{othertestvalue=0,othertestvalue1,othertestvalue2}OtherTestEnum;使用此命令转储AST:clang-Xclang-ast-dump-fsyntax-onlyClass

ios - 何时在 Objective-C 中使用 NS_INLINE 函数

我发现很多人有时会在他们的代码中使用NS_INLINE函数。我很好奇他们如何知道何时使用它以及为什么使用它。我读到INLINE函数的指令少于objective-C函数。我在这方面有点迷茫,因为我对C不太了解。我见过的一些例子是:NS_INLINEidNilToEmptyString(idobj){returnobj?:@"";}NS_INLINEBOOLisRunningTests(void)我想在一些特定的地方使用它。例如。我需要获取画廊的所有assets,然后检查它们是否有location和date。我想将这些函数checkLocation和checkDate作为inline函数。

iphone - iOS CF 数据结构与 NS 数据结构

我想知道CF数据结构(CFArray、CFDictionary等)和NS数据结构(NSArray、NSDictionary等)之间到底有什么区别。我主要使用NS类,但我发现CF类具有更好的性能并且比NS类有一些优势。如果有人能深入解释优缺点,我将不胜感激。 最佳答案 NS(NextStep的缩写)是完全面向对象的Objective-c和CF(CoreFoundation的缩写),它们是基于C的API。内存管理因您使用的框架而异。至于性能,除非你真的有性能瓶颈并且你意识到使用C进行内存管理,否则我会选择Objective-C。现在垃圾

ios - 警告 : Incompatible integer to pointer conversion when using NS_ENUM types

我正在使用一个枚举,像这样:typedefNS_ENUM(NSInteger,MyURLType){MyURLType1,MyURLType2,MyURLType3};当我尝试比较或识别类型时出现问题:if(type==MyURLType2)在MyUrlType2和MyUrlType3的情况下(不是MyURLType1)。我在声明中做错了什么吗?有什么想法吗?谢谢! 最佳答案 来自您的评论Yes,IamusingMyURLType*type=MyURLTypeX然后type不是MyURLType类型,它是指向MyURLType的类型

objective-c - 评估字符串中的数学表达式? (NS字符串)

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatisafastCorObjective-Cmathparser?我有一个代表计算的NSString,例如。@"(10+10)*2"并且我想评估字符串,就好像它实际上是这样的;doubleresult=(10+10)*2;在iOS中最直接的方法是什么?