草庐IT

search_phase_execution_exception

全部标签

c++ - 为什么自制的二进制搜索算法比 std::binary_search 慢?

std::binary_search击败了一个简单的自制二进制搜索算法(再次)://gccversion4.8.2X86_64#ifndefEXAMPLE_COMPARE_VERSION#defineEXAMPLE_COMPARE_VERSION0#endifstaticconstlonglongLOOPS=0x1fffffff;#include#include#include#include#ifEXAMPLE_COMPARE_VERSION#includeinlineboolstl_compare(constintl,constintr){returnlv)end=p-1;else

c++ - 给定范围内的完美正方形 : abnormal execution of loops

程序编号1:在给定的a和b范围内,其中ab,我想找出一个数字是否是一个完美正方形,如果是,则打印其根。因此,我编写了如下代码:#include#include#include#includeusingnamespacestd;floatsquaredroot(intn){floatlow=0.0,mid;floathigh=(float)n+1;while((high-low)>0.00001){mid=(low+high)/2;if(mid*mid>a>>b;floatroo=0.0;for(i=a;i对于给定的输入15,输出应该是2。但是,上面的程序没有打印任何值。然而,当我尝试使

c++ - 与 C++ Exception throw 语句混淆

我是C++的新手,很抱歉提出了非常愚蠢的问题,但我对C++的异常处理机制中的throw语句感到困惑。在下面的代码中,为什么我们要调用名称与类名?它是构造函数吗?是否正在创建classExcept的实例?我不明白那里的语法。classA{public:classExcept{};voidfoo(){throwExcept();}};intmain(){Aa;try{a.foo();}catch(ExceptE)//exceptionhandler{cout 最佳答案 Isitaconstructor?是的。Isitcreatingan

c++ - 复制省略和异常(exception)

在阅读了cppreference的复制省略之后我想玩异常(exception)和复制省略。所以我在coliru上用gcc7.2写了下面的代码#includeclassException{public:Exception(){std::cout输出constructedcopyconstructed我们可以看到调用了复制构造函数,即使在使用-O2调用gcc时也会发生这种情况。在我看来,根据以下条款,这段代码应该有资格复制省略:Whenhandlinganexception,iftheargumentofthecatchclauseisofthesametype(ignoringtop-l

c++ - future 、 promise 和异常(exception)

std::promisep1;autof=p1.get_future();{std::promisep2(std::move(pr));}boolvalid=f.valid();//truef.wait();//doesnotthrow,orfail,butreturnsimmediatelyf.get();//throwsanexception有什么方法可以在调用get之前检查future是否会抛出异常?我希望valid会检查...我不太确定如何让valid返回false。在不设置值的情况下销毁promise不会这样做。 最佳答案

c++ - g++ : can't link with a main executable file

我正在开发一个使用统计攻击来破解wepkey的应用程序。当我用我的makefile编译时(如上)我得到这个错误:ld:can'tlinkwithamainexecutablefile'execStatAttack'forarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)make:*[statAttack]Error1我的项目包含那些文件:statAttack.cpp:包含主要功能,使用上面的文件rc4.h+rc4.cpp:具有那些功能#include#include#i

c++ - 打印 std::this_thread::get_id() 给出 "thread::id of a non-executing thread"?

这曾经工作得很好(然后外星人一定黑了我的电脑):#include#includeintmain(){std::cout现在它打印thread::idofanon-executingthread。ideone.com打印了一些ID,但有趣的是是什么导致了我平台上的这种行为。$uname-aLinuxxxx3.13.0-77-generic#121-UbuntuSMPWedJan2010:50:42UTC2016x86_64x86_64x86_64GNU/Linux有什么想法吗?编辑:嗯..当我添加std::cout两行打印相同的ID,但是当我删除它时,结果仍然相同-“非执行线程”。

c++ - LLVM 是避免动态转换规则的异常(exception)吗?

LLVM有自己的RTTI替代方案,它比内置RTTI的速度有所提高,并允许动态转换为没有vtable的类(dyn_cast)。但是,它仍然可以完全按照dynamic_cast的方式使用。尽管它确实允许它与更多类一起使用,但已被使用。dyn_casttemplatedocumentationLLVM是一个享有盛誉的C++项目,所以这似乎与俗语背道而驰,即过多的动态转换是糟糕设计的标志,也称为代码异味。当然,与标准dynamic_cast相比,性能更好的动态转换并不能改善其在设计中的使用。.那么谁在这里?在C++代码中是否存在大规模使用动态转换是一个好的设计选择的情况?Google在LLVM

c++ - 从库中的 std::exception 派生:Does a headers-only solution work for catching exceptions?

在我们的跨平台开源库中,我们派生自std::exception以定义可以在库代码和用户代码中捕获的自定义异常。我看到这实际上是一个推荐的过程,但在VisualStudio2015(或者更确切地说,伴随的新MSVC版本?)中,在实现类(warningC4275)中抛出警告-另请参见此处:Howtodllexportaclassderivedfromstd::runtime_error?当然我们可以忽略这个错误,但这对我来说似乎是错误的。与旧的VisualStudio版本相比,出现警告的原因似乎是std::exception曾经在旧的MSVC版本中导出,但同时不再导出。无论哪种情况,我都觉

C++ catch(std::exception & e) 与 catch(...)

我知道处理这两个捕获的不同之处,但是椭圆捕获std::exceptioncatch无法捕获的东西需要什么?例如:try{throwstd::runtime("runtimeerror!");}catch(conststd::exception&e){std::cout我看过结合使用这两种方法的代码示例,但我没有看到您同时使用这两种方法的原因。 最佳答案 catch(conststd::exception&e)只会捕获标准异常。catch(...)之后会捕获那里的所有内容。您可以处理整数和其他类型(http://www.cpluspl