草庐IT

first_it

全部标签

c++ - 对数组 : can it actually happen? 的右值引用

考虑这段代码:#includeusingnamespacestd;typedefintarray[12];arraysample;arrayret1(){//won'tcompilereturnsample;}array&ret2(){returnsample;}array&&ret3(){returnsample;//won'tcompile}voideat(array&&v){cout唯一似乎真正编译的版本是ret3()。事实上,如果我省略实现而只声明它,它会编译(当然永远不会链接),但我真的不知道如何显式返回对数组的右值引用。如果这不可能发生,那么我是否可以得出结论,对数组的右值

c++ - boost 图中的颜色图 breadth_first_visit

我想使用boostsbreadth_first_visit方法,我想为它提供我自己的“外部”颜色图。我定义的图如下typedefboost::adjacency_list>>GraphType;其中Node_t是一个结构体,用于定义顶点的属性。但是,我无法找到如何为BFS提供我自己的颜色图。我想将顶点颜色存储在一个vector中,所以我的定义看起来像std::vectorcolors;但我想不通,如何将其用于bfs。都不是boost::breadth_first_search(g,*boost::vertices(g).first,boost::color_map(colors));也

c++ - 提升 : is it safe to use multiple recursion in async calls?

我是asio框架的新手,所以请多多关照。我调查了几个boostasio示例,发现人们使用这样的异步调用:voidread(){async_read(socket_,boost::asio::buffer(&user_[0],user_.size()),boost::bind(&Connection::handle_user_read,this,placeholders::error,placeholders::bytes_transferred));}voidhandle_user_read(...){...read();...}我认为这段代码不安全,因为它使用了多重递归。所以当因为调

java - 混合代码( native 、托管): how does it (technically) interoperate?

我基本理解托管代码和native代码的概念及其difference.但是他们之间如何在技术上进行交流呢?想象一下以下示例:我得到了一些为特定平台编译的静态或动态C++库。现在我写了一个JavaProgramm。在这段代码中,我使用“native”关键字调用库函数。我用字节码构建一个jar文件,c++库文件将保持独立。结果将不再与平台无关。但是java程序如何知道调用的本地方法是否存在?整个程序代码是如何在运行时执行的?我知道字节码将用JIT解释或编译。这一切如何适应沙盒范式?native代码是否也在沙箱内执行?是否因为(java和c++)代码最终都是机器码才行得通?也许这是个愚蠢的问题

.net - 将非托管 C++ 与 F# 混合用于物理 : worth it?

我将开始使用DirectXSDK在非托管C++中编写3D游戏。它会涉及很多物理和数学,尽管我无法预测它会有多复杂(例如,我不知道我是否会将它并行化)。我在想,由于F#的incrediblyawesomeunitsofmeasurefeature,以及它的功能性并因此很好地并行化的事实,我可以编写一个F#库来进行游戏的数学密集型计算。但是:我在C++方面缺乏经验,更不用说将它与托管代码进行交互了。我不知道这会有多辛苦。我不知道对于每个数学密集型计算来说,跳入和跳出托管DLL的速度有多大(每次游戏迭代至少必须运行一个物理方程).我不确定测量单位的增益和简单的并行化是否值得。我的意思是,如果

c++ - Boost find_first 它是如何工作的?/定义一个范围

我有一个缓冲区(例如charbuffer[1024]),其中填充了一些数据。现在我想在这个缓冲区中搜索一个子字符串。因为它应该是一个不区分大小写的搜索,所以我正在使用boost::algorithm::ifind_first。所以我这样调用这个函数:boost::iterator_rangebuf_iterator;buf_iterator=boost::algorithm::ifind_first(buffer,"substring");这实际上工作正常。但我担心的是:我只向函数传递了一个charpointer,所以ifind_first应该不知道我的缓冲区在哪里结束,但它仍然有效。

c++ - boost::transform_iterator 不适用于 std::bind( &Pair::first, _1 )?

通过std::map的键集进行迭代的传统任务将我引向了另一个似乎尚未在此处讨论的困惑局面。简而言之,这段代码无法编译(大量使用C++11):typedefstd::pairPair;vectorv{Pair(1,2),Pair(2,3)};usingnamespacestd::placeholders;autochoose_first=std::bind(&Pair::first,_1);boost::make_transform_iterator(v.begin(),choose_first);错误信息如下。notypenamed'result_type'in'structstd::

c++ - 为什么在核心转储中得到 "first/second chance not available"

我使用windbg调试故障转储,在windbg的以下输出中,您可以看到“first/secondchancenotavailable”,为什么first/secondchance不可用?这是什么意思?Thisdumpfilehasanexceptionofintereststoredinit.Thestoredexceptioninformationcanbeaccessedvia.ecxr.(e38.2270):Accessviolation-codec0000005(first/secondchancenotavailable) 最佳答案

c++ - 模板参数列表中的额外 typename 关键字 : is it valid or not?

以下代码使用clang3.5.0和g++4.9.0成功编译(使用-Wall-Wextra-pedantic-errors标志)在C++03(flag-std=C++03)下,C++11(flag-std=C++11),和C++14(flag-std=C++14):namespaceN{typedefintT;enumE{};}templatestructST{};templatestructSE{};intmain(){}在非类型模板参数声明之前添加额外的typename关键字是否有效?请注意,以下代码无法编译(如C++03、C++11和C++14代码):typedefintT;enu

c++ - boost MPL : Call a (member) function only if it exists

我有一个类A,它有一个模板参数T。有些用例中类T提供函数func1(),有些用例中T不提供它。A中的函数f()应该调用func1(),前提是它存在。我认为这应该可以通过boostmpl实现,但我不知道如何实现。这里有一些伪代码:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();}};如果是else-case会更好:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();elsecout