草庐IT

foo_value

全部标签

c++ - "warning C4800: ' int' : forcing value to bool 'true' or 'false' "不同场景下的不同行为

我无法理解此警告的以下行为。case1:boolread=(33&3);//NoWarningissuedbyvs2013case2:intb=33;boolread=(b&3);//NowcompilerisgeneratingC4800warning.为什么编译器在情况2中生成警告,而在情况1中不发出任何警告。 最佳答案 C4800是一个性能警告-在运行时将整数强制转换为bool会产生成本。这与逻辑正确性无关。最常见的强制转换(和警告)发生在您与使用整数(VC++中的BOOL)作为bool值的代码交互时。第一个代码段中的编译时强

c++ - C++初始化中的 "several values"是什么?

这是一道关于C++Primer(5thedition)Chapter3.2,Page84,85的问题。Whenwehaveasingleinitializer,wecanuseeitherthedirectorcopyformofinitialization.Whenweinitializeavariablefrommorethanonevalue,suchasintheinitializationofs4,wemustusethedirectformofinitialization:strings4(10,'c');//s4is"cccccccccc"strings5="hiya";

c++ - Qt 中 `:/foo` 、 `qrc:/foo` 和 `qrc:///foo` 路径之间的区别

此代码成功:QQmlApplicationEngineengine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));此代码打印“失败”:QFilefile("qrc:/main.qml");if(file.open(QIODevice::ReadOnly)){cout将QFile构造函数参数更改为qrc:///main.qml(如Qtdocumentation中所示)并没有修复它。将其更改为:/main.qml使其打印“成功”。所以我对何时使用这3种形式感到困惑。 最佳答案 如您

c++ - 为什么 Foo::inner Constexpr 不会链接,而 User Literal{Foo::inner Constexpr} 会链接?

考虑以下简单类,这些类是我根据在实际项目中遇到的问题设计的。Triple是一种与内部一起使用的快速样板类型constexprFoo类中的s:#includeclassTriple{public:friendstd::ostream&operator如果我再写一个main()使用公共(public)内部函数constexpr来自Foo,如下,会链接失败(使用g++4.7.0,在Windows7上通过mingw-x86-64):intmain(intargc,char**argv){usingstd::cout;usingstd::endl;cout$g++-otest-O3--std=c

c++ - QtableWidget : How to find value in specific column

我需要使用qtablewidget检查特定值是否在特定列中。在我的例子中,我需要检查第一列ID是否已经存在,如果是,我需要包含行的编号来更新该行,否则我想添加该行。QT有没有提供查列或者shou的解决方案 最佳答案 我假设您正在寻找第一列中的值(这就是为什么item(int,int)中的第二个参数为0)并且表名是myQTableWidgetintrows=myQTableWidget->rowCount();boolfound=false;for(inti=0;iitem(i,0)->text()=="Something"){//w

c++ - 写 foo(const float&) 是在浪费精力吗?

当传递像int或float这样的原始类型时,这样写是不是浪费了精力:foo(constfloat&);而不只是按值传递:foo(float); 最佳答案 为了花车?Yes,prettymuch.这里根本没有任何好处:float很小,复制不会比创建指针来实现引用慢。 关于c++-写foo(constfloat&)是在浪费精力吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/210

c++ - 如何编写模板将 vector 转换为 Json::Value (jsoncpp)

我写了一个模板(如下所示)但是编译失败templateclassiterable>Json::Valueiterable2json(constiterable&cont){Json::Valuev;for(constt&elt:cont){v.append(elt);}returnv;}std::vectorvec{1,2,3};Json::Valuev=iterable2json(vec)错误C3312:找不到类型“conststd::_Vector_val”的可调用“开始”函数与[_Val_types=std::_Simple_types]参见正在编译的函数模板实例化'Json::

c++ - 是 int & foo();一个左值?

我知道可能还有其他类似的问题,但他们没有完全回答我的问题。我一直在浏览有关C++类型推导的讲座中的一些幻灯片,在其中一张中我发现了以下语句:int&foo();//foo()islvalue;起初,我以为这是错误的——foo是一个函数,它不能被赋值,它不是一个左值。但现在我想作者可能有不同的想法。也就是说,函数调用可能是左值,而不是函数本身。换句话说:foo是左值吗?foo()是左值吗?是否可以将函数(不是函数调用)分配给(即foo=something;)?“左值是可以分配给的每个对象/事物”-这个陈述总是正确和准确的吗?问题4需要更多解释。有了它,我试图理解什么是左值。我看到的另一个

c++ - 如何在 C++ 中为不同的迭代器 value_types 重载函数

我想在C++11中实现一个带有一对迭代器的模板函数。如果传递了一对迭代器,其值类型是任意类型的std::pair,则实现应该做一些特殊处理。我试图提出以下定义://arbitraryvaluetypestemplatevoidprocess(Iterbegin,Iterend){for(Iteriter=begin;iter!=end;++iter){std::cout::value_type,std::pair>::value>::type*=0>voidprocess(Iterbegin,Iterend){for(Iteriter=begin;iter!=end;++iter){s

c++ - 为什么在使用命名空间 foo 时不能在 sub::bar 中使用 foo::bar 函数?

考虑以下程序:namespacefoo{namespacesub{intf();}//namespacesub}//namespacefoonamespacebar{namespacesub{intg(){usingnamespacefoo;returnsub::f()+1;}}//namespacesub}//namespacebar我希望它能编译,但它没有:$g++-6-ca.cppa.cpp:Infunction‘intbar::sub::g()’:a.cpp:12:9:error:‘f’isnotamemberof‘bar::sub’returnsub::f()+1;^~~a.