草庐IT

do_some_long_calculation

全部标签

C++ - 为什么 std::function<some_type_t, void> 无效?

在C++中,如果我尝试这样做:std::function然后编译器会抛出错误。为什么是这样?它在许多情况下很有用。一个例子://g++-std=c++17prblm.cpp#include#includetemplateclasssome_callback{public:usingcallback_t=std::function;some_callback(callback_t_myfunc){this->myfunc=_myfunc;}callback_tmyfunc;};usingcallback_with_just_bool=some_callback;usingcallback

c++ - 从 std::size_t* 到 long unsigned int* 的无效转换

在raspberrypi-arv7l上,我正在编译以下C++程序#includevoidfun(unsignedlongint*i){std::cout对于上面的代码,我收到以下错误:a.cpp:Infunction'intmain()':a.cpp:12:9:error:invalidconversionfrom'std::size_t*{akaunsignedint*}'to'longunsignedint*'[-fpermissive]fun(&i);^~a.cpp:3:6:note:initializingargument1of'voidfun(longunsignedint*

c++ - 为什么在 C 或 C++ 中使用 "long long"可能是一件坏事?

为什么在C或C++中使用“longlong”可能是一件坏事?前几天我正在编译一个运行时库,在代码中它检查long是否为64位,如果不是,它使用longlong。但除此之外,它还会发出#warning“usinglonglong”。我想不出任何理由将“longlong”作为警告,除非它是开发人员遗留下来的调试问题。谢谢陈茨 最佳答案 据我所知,longlong目前仅在C99中是标准的。它也将是C++0x中的一种类型,但大多数现代编译器应该已经支持它。但是,对于固定大小的整数,可以使用C99header,或者在C++中

c++ - '从 some_type** 到 const some_type** 的无效转换'

我有一个函数需要constsome_type**作为参数(some_type是一个结构,函数需要一个指向这种类型数组的指针).我声明了一个some_type*类型的局部变量,并对其进行了初始化。然后我将该函数称为f(&some_array),编译器(gcc)说:error:invalidconversionfrom‘some_type**’to‘constsome_type**’这里有什么问题?为什么我不能将变量转换为常量? 最佳答案 参见:Whycan'tIpassachar**toafunctionwhichexpectsaco

c++ - 线程 : doing processing in background of C++ Cinder app to keep the UI responsive

今天下午经过几个小时的黑客攻击后,我很高兴能够运行我的第一个C++应用程序。该应用程序将视频中的X维度换成时间维度。示例:http://www.flickr.com/photos/forresto/5489312991/来源:https://gist.github.com/849779任何有关如何优化源的建议都将受到欢迎,但我对如何以一种不适合的方式在update()中进行图像处理很感兴趣使应用react迟钝。(在libcinder论坛中交叉发布:http://forum.libcinder.org/#Topic/23286000000669039) 最佳答

c++ - 加倍到 `unsigned long long` 会导致内存(堆栈?)损坏

以下代码有什么问题(崩溃):#include#includevoidfoo(std::stringstr,unsignedlonglongval){std::coutVisualStudio2012/调试/Win32它在x64中工作,如果我们将unsignedlonglong更改为longlong甚至unsignedlong此代码片段崩溃。在其他情况下,函数参数的地址会发生变化。我怀疑它与将double转换为unsignedlonglong的_stol2有关 最佳答案 SubmittedtoMicrosoft作为错误(已接受)

java - 如何使用 Swig 将数组(java 中的 long 数组)从 Java 传递到 C++

我有如下示例.h文件:classTest{public:voidSelectValues(longlongvalues[])};我使用SWIG并从下面的.i文件创建了JNI接口(interface)%moduleMyLib%include"carrays.i"%array_functions(longlong,long_long_array)%{#include"Test.h"%}/*Let'sjustgrabtheoriginalheaderfilehere*/%include/*Thislineisusedforcallingconventions*/%include"Test.h

c++ - CUDA 探查器 : Calculate memory and compute utilization

我正在尝试使用ubuntu上的CUDAnsight分析器为我的GPU加速应用程序的内存带宽利用率和计算吞吐量利用率建立两个总体测量值。该应用程序在TeslaK20cGPU上运行。我想要的两个测量值在某种程度上与此图中给出的测量值相当:问题是这里没有给出确切的数字,更重要的是我不知道这些百分比是如何计算的。内存带宽利用率Profiler告诉我我的GPU的最大全局内存带宽为208GB/s。这是指设备内存BW还是全局内存BW?它说的是全局,但第一个对我来说更有意义。对于我的内核,分析器告诉我设备内存带宽为98.069GB/s。假设最大208GB/s是指设备内存,那么我可以简单地将内存带宽利用

c++ - boost asio 中的并发读取和 async_read_some

假设在boost::asio中的套接字上启用了async_read_some服务,如果在同一套接字上调用阻塞读取会发生什么情况?一段伪代码如下:usingboost::asio::local::stream_protocol;boost::asio::io_serviceio;stream_protocol::sockets(io);s.connect(stream_protocol::endpoint(address));s.async_read_some(aBuffer,aCallback);//startasync_readboost::threadthread(boost::b

c++ - unsigned long vs size_t 导致函数重载失败

我定义了一个函数:voidmyfunc(size_tparam1,size_tparam2){...}它工作正常。但是当我尝试重载这个函数时voidmyfunc(unsignedlongparam1,unsignedlongparam2){...}编译失败,提示如下:错误:无法重载myfunc(unsignedlongparam1,unsignedlongparam2)。如何在不将输入参数静态转换为size_t的情况下解决这个问题?谢谢! 最佳答案 听起来size_t和unsignedlong在您的系统上是同一类型;编译器提示你有两