草庐IT

const_cast-ed

全部标签

android - DRM WideVine 视频无法从 Android Cast Sender 应用程序播放

我正在使用以下castreceiver当我将我的android发送器连接到chromecast设备时,它显示黑屏并且从不播放视频。https://github.com/googlecast/CastReferencePlayer我在接收器中为widevine设置licenseUrl如下:sampleplayer.CastPlayer.prototype.preloadVideo_=function(mediaInformation){this.log_('preloadVideo_');varself=this;varurl=mediaInformation.contentId;var

【C++】static_cast基本用法(详细讲解)

👉博__主👈:米码收割机👉技__能👈:C++/Python语言👉公众号👈:测试开发自动化【获取源码+商业合作】👉荣__誉👈:阿里云博客专家博主、51CTO技术博主👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。C++中static_cast如何使用(详细讲解)目录C++中static_cast如何使用(详细讲解)1.使用场景1.1基础数据类型的转换1.2指向派生类的指针或引用转换为指向基类的指针或引用1.3指向基类的指针或引用转换为指向派生类的指针或引用1.4在有关联的类型之间进行转换2.限制3.优点4.注意static_cast是C++中四个命名强制类型转换操作符之一。它用

c++ - 将 Boost FileSystem3 迭代器转换为 const char*

我正在使用BoostFileSystem3循环遍历目录中的一些文件,我需要将文件名转换为char*以用于另一个库,不幸的是我的C++foo缺失,任何人都可以帮忙吗?intmain(intargc,char*argv[]){pathp(argv[1]);//preadsclearerthanargv[1]inthefollowingcodetry{if(exists(p))//doespactuallyexist?{if(is_regular_file(p))//isparegularfile?coutvec;//storepaths,vecv;//sowecansortthemlate

c++ - 数据库或文件系统访问的 const 语义

我在处理内存数据结构时经常使用const并保持我的代码const正确,但我不确定const应该如何应用于更复杂的对象,例如:代表与远程系统连接的对象由数据库支持的对象(可以按需从数据库加载部分)由磁盘目录树支持的对象(可以访问由单独的对象层次结构控制的目录树)对于这样的对象,const方法应该表示什么?我可以想到几种可能性:"strict"const-不修改任何内存状态的方法是const。但是,这似乎会破坏封装,因为它需要调用者知道哪些方法修改连接状态,哪些不修改。“逻辑”常量-不修改对象逻辑状态的方法是常量。但是,这可能需要将大量状态和缓存变量标记为mutable。虽然我意识到这就是

c++ - 如何从成员函数指针中删除 const 限定符

我正在使用包含以下代码的库:templatevoid_register_member(lua_State*state,constchar*member_name,MT::*member){std::functionlambda_get=[member](T*t){//^errorherereturnt->*member;};//...但是这段代码不接受const成员函数指针。传递这些会产生错误Functioncannotreturnfunctiontype'void()const'orwhateverthetypeoftheconstmemberfunctionis.如何从传递的成员函

c++ - 构建依赖于非 const-correct 库的 const-correct (C++) 库

我正在用C++构建一个库(主要是为了好玩),我已经研究了一段时间(多年,哈哈,这只是一种爱好)我最近将一些基础(阅读、库依赖)切换到了另一个库。不幸的是,该库根本不关心“const-correctness”。我有点强制症,我喜欢挑战自己以“正确的方式™”做事,所以我想让我的库const-correct。我已经开始了几次,有些部分是;我知道最好从一开始就开始const-correct但这并不真正相关或值得辩论。事实上,我有兴趣再次认真地尝试它,但另一个图书馆阻止我这样做。你可能会问,这是怎么回事?好吧,如果我正在调用一个显然应该是const的方法(实际上并没有改变任何东西),并且我的方法

c++ - 为什么没有标准化的方法来避免 const 方法代码重复?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion根据我的经验,在成员方法的const和非const版本中使用相同的代码是一种常见现象。避免复杂方法代码重复的一种方法是使用const_cast删除非const版本中的const-ness,如ScottMeyers在EffectiveC++(第3项)中推荐的那样。然而,这对于可能只返回一个指针的非常短的方法没有好处-当然在这种情况下重复不是那么有问题。这仍然让我想知道是否有没有关键字或等效的

c++ - 如何在 C++ 中将 const int 设置为最大值?

我有一个静态常量成员,想将它设置为最大整数。我正在尝试以下操作:conststaticintMY_VALUE=std::numeric_limits::max();但是得到如下错误:error:in-classinitializerforstaticdatamemberisnotaconstantexpression有什么解决办法吗?函数如何不返回常量表达式?编辑:添加-std=c++11解决了这个问题。我的室友告诉我,编译器(C++11之前的版本)不够聪明,无法决定std::numeric_limits::max()不会改变任何其他内容,因此不被视为常量。这可能是导致此错误的原因吗?

c++ - 将右值绑定(bind)到 const 左值引用

这个问题在这里已经有了答案:Whynotnon-constreferencetotemporaryobjects?[duplicate](4个答案)关闭4个月前。出于某种原因,我没能找到这个确切的问题。为什么允许将rvalue绑定(bind)到const左值引用,尽管没有const是不可能的?我确实理解右值的生命周期以某种方式得到了扩展(在第一种情况下),但如果是这样,为什么编译器会禁止更改那个“右值”,它不再是一个真正的临时对象。例如,考虑以下代码:intmain(){int&i=3;//produceserrorconstint&j=3;//compilesreturn1;}

c++ - 使用 static_cast 实现的转换运算符

我在提出这个问题之后问这个问题here.要点很简单。假设您有两个此类:templateclassBase{...operatorconstDerived&()const{returnstatic_cast(*this);}...};classSpecialization:publicBase{...};然后假设你有一个像这样的类型转换:templatefunctionCall(constBase¶m){constT&val(param);...}问题是:这种转换的符合标准的行为应该是什么?应该和constT&val(static_cast(param))一样吗?还是应该递归迭代