草庐IT

implicit-conversion

全部标签

c++ - "Narrowing conversion from ' int ' to ' char ' inside { }"交叉编译时的合法值

我有一个C++项目,我在我的机器上使用g++编译(编译到“主机”)和使用交叉编译器的ARM处理器(在我的例子中是arm-cortex_a8-linux-gnueabi-g++)。我正在转换为C++0x/11标准,编译初始化列表时出现错误,我可以在以下代码段中重现该错误:intmain(void){charc[1]={-108};}这个程序看起来是正确的,因为-108是char的合法值。使用g++编译它不会产生以下命令行错误:g++example.cc-std=c++0x但是,当我使用交叉编译器进行编译时,如下所示:arm-cortex_a8-linux-gnueabi-g++examp

c++ - static_cast 和 Implicit_cast 有什么区别?

什么是implicit_cast?我什么时候应该更喜欢implicit_cast而不是static_cast? 最佳答案 我正在复制我对answerthiscomment的评论在另一个地方。Youcandown-castwithstatic_cast.Notsowithimplicit_cast.static_castbasicallyallowsyoutodoanyimplicitconversion,andinadditionthereverseofanyimplicitconversion(uptosomelimits.you

c++ - 使用boost程序选项时如何解决 "boost::bad_any_cast: failed conversion using boost::any_cast"?

//Usingboostprogramoptionstoreadcommandlineandconfigfiledata#includeusingnamespacestd;usingnamespaceboost;namespacepo=boost::program_options;intmain(intargc,char*argv[]){po::options_descriptionconfig("Configuration");config.add_options()("IPAddress,i","IPAddress")("Port,p","Port");po::variables_

c++ - 警告 : overflow in implicit constant conversion

在下面的程序中,第5行确实按预期给出了溢出警告,但令人惊讶的是,第4行在GCC中没有给出任何警告:http://www.ideone.com/U0BXnintmain(){inti=256;charc1=i;//line4charc2=256;//line5return0;}我在想这两行都应该给出overflow警告。还是我缺少什么?我做这个实验的主题是:typedeftypechecking?在那里我说了以下内容(我从答案中删除了,因为当我运行它时,它并没有像我预期的那样显示)://However,you'llgetwarningforthiscase:typedefintT1;ty

c++ - 使 : implicit rule to link c++ project

我正在学习制作教程。我正在尝试构建的非常简单的测试项目只有3个文件:./src/main.cpp./src/implementation.cpp和./include/header.hpp这是制作文件。VPATH=srcincludeCPPFLAGS=-Iincludemain:main.oimplementation.omain.o:header.hppimplementation.o:header.hpp在不带任何参数的情况下调用ma​​ke仅构建目标文件,但不链接可执行文件。prog应该有一个隐含的规则,或者我错过了什么?我真的需要有人为我指明正确的方向。谢谢。我使第一个目标名称与

c++ - 警告 : deprecated conversion from string constant to 'char*' '

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtogetridofdeprecatedconversionfromstringconstantto‘char*’warningsinGCC?我使用库中的以下函数,但我无法更改:HRESULTDynamicTag(char*pDesc,int*constpTag);我使用它如下。我已经创建了实现上述功能的库提供的类的对象。inttag=0;g_pCallback->DynamicTag("MyLogger",&tag);我收到以下警告:warning:deprecatedconversionfromst

c++ - 错误 C2679 : binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

这是我的代码,我该如何解决这个错误?#include"stdafx.h"#includeusingnamespacestd;intmain(){stringtitle="THEWORLDOFPIRATES";cout错误是binary' 最佳答案 你忘了#include使用std::string不包括它的header适用于一些间接导入部分的编译器进入他们的或其他标题,但这不是标准的,不应依赖。此外,当您尝试输出字符串时,它们通常会中断,因为它们仅包含实现的一部分,并且缺少实现operator的部分。.

Python3 错误 : TypeError: Can't convert 'bytes' object to str implicitly

我正在learnpythonthehardway中的练习41并不断收到错误:Traceback(mostrecentcalllast):File".\url.py",line72,inquestion,answer=convert(snippet,phrase)File".\url.py",line50,inconvertresult=result.replace("###",word,1)TypeError:Can'tconvert'bytes'objecttostrimplicitly我使用的是python3,而书籍使用的是python2,所以我做了一些更改。这是脚本:#!/usr

Java "target type of lambda conversion must be an interface"

我正在尝试在java中使用lambdas和流,但我对它很陌生。当我尝试制作lambda表达式时,我在IntelliJ“目标类型的lambda转换必须是一个接口(interface)”中收到此错误List>callList=prgll.stream().map(p->(()->{returnp.funct();}))我做错了吗? 最佳答案 我怀疑这只是Java的类型推断不够聪明。试试.map(p->(Callable)()->p.funct()) 关于Java"targettypeofla

Java <-> Scala 互操作 : transparent List and Map conversion

我正在学习Scala,并且我有一个要迁移到Scala的Java项目。我想通过一个接一个地重写类并检查新类没有破坏项目来迁移它。这个Java项目使用了很多java.util.List和java.util.Map。在新的Scala类中,我想使用Scala的List和Map来获得好看的Scala代码。问题在于新类(那些在Scala中编写的)不能与现有Java代码无缝集成:Java需要java.util.List,Scala需要自己的scala.List.以下是问题的简化示例。有Main、Logic、Dao类。他们在一行中互相调用:Main->Logic->Dao.publicclassMai