草庐IT

Return-Path

全部标签

c++ - 视觉 C++ 错误 : function must return a value

我正在做一个多平台项目,有些平台禁用了功能,在这些功能的界面中,我经常做的事情是这样的:boolFoo::bar()const{//disabledabort();}GCC/LLVM不要求非void函数返回值(它们只是给出警告),在这种情况下,我调用abort()时,它们足够聪明,甚至不会发出警告(因为该函数永远不会返回)。有没有办法(编译标志?)让VisualC++2010以相同的方式运行,这样我就不会继续破坏Windows构建?我知道我总是可以在中止后返回值,但在其他平台上工作时我通常会忘记这一点,不给出错误的行为似乎更合适。 最佳答案

c++ - 如果函数调用是 return 语句,编译器能否自动 move 函数参数?

在以下情况下,编译器可以自动move函数参数v还是必须手动声明?std::vectorFilter(std::vectorv);voidDoSomeStuffAndCallFilter(std::vectorv){//dosomestufftov//canthecompilerautomaticallystd::movevinthiscall?//ie.returnFilter(std::move(v));//returnFilter(v);} 最佳答案 在您的情况下,编译器可以在as-if规则下作为允许的优化来执行此操作,因为它非

c++ - Visual Studio Code : C++ include path

我目前正在使用https://marketplace.visualstudio.com/items?itemName=mitaki28.vscode-clang这是一个很棒的访问成员函数的小工具。但是,我在导入的项目中遇到了一个问题。虽然上面的clang功能有效,但我在使用包含目录时遇到了特殊问题。我的项目结构如下:|-src/|-main.cpp|-include/|-MyHelper.h|-CMakeLists.txt有没有办法在VisualStudioCode中配置我的包含目录,以便在main.cpp中我可以这样做:#include"MyHelper.h"而不是#include"

解决npm ERR! path E:\XXX\node_modules\node-sass的问题

在Node.js项目中,我们经常使用npm来安装和管理各种依赖包。然而,有时候我们可能会遇到一些关于npm的错误,其中最常见的就是"npmERR!pathE:\XXX\node_modules\node-sass"。这个错误通常是由于node-sass的路径问题导致的。下面我将详细介绍如何解决这个问题。1.确定问题的原因首先,我们需要确定问题的原因。在这个例子中,错误信息显示的是node-sass的路径是E:\XXX\node_modules\node-sass。这意味着node-sass可能没有被正确地安装在我们的项目目录中。2.检查node-sass是否已经安装我们可以使用npmlist命

c++ - 是否允许在 requires 表达式中为 return-type-requirement 指定类型?

看看这个简单的概念示例:templaterequiresrequires(Tt){{t+t}->bool;}voidfn(){}intmain(){fn();}这里,我使用bool作为return-type-requirement的type-constraint。当前稿says:type-constraint:nested-name-specifieroptconcept-namenested-name-specifieroptconcept-name所以type-constraint必须是一个concept-name。bool(或任何类型)是否允许作为概念名称?如果是,那是什么意思,

c++ - 首选哪个,return const double& OR return double

给定以下场景,以下哪一项是首选。m_state是一个成员评价者,而不是局部变量。classC{private:doublem_state;public:doublestate()const{returnm_state;}//returnsdoubledouble&state(){returnm_state;}}===========================================classC{private:doublem_state;public:constdouble&state()const{returnm_state;}//returnsconstdouble&

c++ - 嵌套类中的 "Invalid covariant return type"错误,其方法返回基于模板的对象

下面的C++代码在编译时给我这些错误:covariant.cpp:32:22:error:invalidcovariantreturntypefor‘virtualQC::test()’covariant.cpp:22:22:error:overriding‘virtualQB::test()’我不想更改行virtualQtest(){}至virtualQtest(){}尽管它消除了编译错误。有没有其他方法可以解决这个问题?templateclassQ{public:Q(){}virtual~Q(){}};classA{public:A(){}virtual~A(){}};classB

c++ - 没有 return 语句的重载赋值运算符

为什么允许赋值运算符返回void?为什么赋值链在这种情况下有效?看看代码,就会很清楚我在说什么。代码:structFoo{std::stringstr;Foo(conststd::string&_str):str(_str){}Foo&operator=(constFoo&_foo){str=_foo.str;//return*this;/*NORETURN!*/}};intmain(){Foof1("1");Foof2("2");Foof3("3");f1=f2=f3=Foo("4");std::cout问题:为什么这是合法的?(为什么要编译)为什么有效?我在很多地方读到“赋值运算符

c++ - 奇怪的运算符重载, "operator T& () const noexcept { return *_ptr; }"

我研究了一下,operator函数的格式是(returnvalue)operator[space]op(arguments){implementation}但是,在std::reference_wrapper实现中,有一个运算符重载函数声明为operatorT&()constnoexcept{return*_ptr;。这个运算符和T&operator()constnoexcept{return*_ptr;不同吗?}?.如果两者不同,那么第一个有什么用? 最佳答案 运算符T&()constnoexcept;是一个user-define

c++ - boost::filesystem::remove_all(path) 是如何工作的?

我正在尝试使用boost::filesystem::remove_all(path)从特定路径中删除所有目录、子目录和包含的文件。如果文件在另一个程序中打开,我还想显示一条错误消息。在这种情况下boost::filesystem::remove_all(path)会抛出异常吗?或者有其他方法可以实现吗? 最佳答案 这不适合发表评论,所以我发布为答案只需查看源代码:http://www.boost.org/doc/libs/1_55_0/libs/filesystem/src/operations.cppBOOST_FILESYSTE