草庐IT

parameter-passing

全部标签

c++ - std::search on single-pass 范围

我想从std::istream中读取数据,直到找到特定的字符序列,即我想实现以下接口(interface):voidread_until(std::istream&is,std::string_viewneedle);使用std::istreambuf_iterator,我相信这相当于std::search在单遍迭代器上的组合。不幸的是,std::boyer_moore_searcher需要随机访问迭代器。是否有任何使用C++标准库(以及与sv的大小成比例的内存)的上述接口(interface)的任何简单实现,还是我必须自己编写代码? 最佳答案

c++ - gcc-4.9.2 : non-type template parameter

我在gcc-4.9.2上有一个奇怪的编译错误,相同的代码在其他编译器上工作,比如gcc-4.8或我能找到的任何clang。问题与non-typetemplate-arguments有关.所以考虑一下:#include#includeinttemplateParam;templatestructTestTemplate{intvalue(){}};templateintTestTemplate::value(){returntemplateParam;}TestTemplatetestVariable;intmain(){std::cout我在gcc-4.9.2中遇到以下错误:prog.

c++ - 为什么不允许按值将数组传递给 C 和 C++ 中的函数?

C和C++允许按值传递结构和对象到函数,但阻止按值传递数组。为什么? 最佳答案 在C/C++中,在内部,数组作为指向某个位置的指针传递,基本上,它是按值传递的。问题是,复制的值表示到相同位置的内存地址。在C++中,一个vector顺便说一句,被复制并传递给另一个函数。 关于c++-为什么不允许按值将数组传递给C和C++中的函数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/67

c++ - "if the context from which the specialization is referenced depends on a template parameter"是什么意思?

根据C++17标准,[temp.point]/4,强调我的,Foraclasstemplatespecialization,aclassmembertemplatespecialization,oraspecializationforaclassmemberofaclasstemplate,ifthespecializationisimplicitlyinstantiatedbecauseitisreferencedfromwithinanothertemplatespecialization,ifthecontextfromwhichthespecializationisrefere

c++ - CPP : avoiding macro expansion of a macro function parameter

我想做的(为了记录目的)是这样的:编写这段代码是为了说明我的问题,实际代码很复杂,是的,即使在C++上我也有充分的理由使用宏=)#defineLIB_SOME1#defineLIB_OTHER2#defineWHERE"atfile#a,line#l,function#f:"//(lookforsyntaxhightlightingerroratSOxd)#defineLOG_ERROR_SIMPLE(ptr,lib,str)ptr->log("ERROR"str\"atlibrary"#lib);#defineLOG_ERROR(ptr,lib,str)LOG_ERROR_SIMPL

C++ 将 ostream 作为参数传递

我正在为虚拟rolodex做一个家庭作业项目,该项目需要一个主类、一个rolodex类和一个卡片类。要将所有“卡片”的内容输出到控制台,任务说明main()应该调用rolodex类中的show(...)函数,将其传递给ostream和show(...)然后迭代在卡片上,调用它们的每个showCard()函数。实际显示是由卡片对象的showCard()函数完成的,显示在提供的ostream上。我不明白的是为什么ostream会/应该被传递到任何地方。似乎作业要求这样的事情:main(){RolodexmyRolodex;ostreammyStream;myRolodex.show(myS

c++ - 错误 : passing 'const T' as 'this' argument of 'bool T::operator<(T)' discards qualifiers

#include#include#includeclassMyData{public:intm_iData;booloperatormyvector(2,MyData());myvector[0].m_iData=2;myvector[1].m_iData=4;std::sort(myvector.begin(),myvector.end());}尝试编译这个给出:error:passing'constMyData'as'this'argumentof'boolMyData::operator 最佳答案 比较运算符将在类实例的常量引

c++ - 如何将对函数的引用传递给另一个函数

我一直在阅读函数指针以及将它们用作其他函数的参数。我的问题是如何在不使用指针的情况下通过引用传递函数?我一直在网上寻找答案,但一直没有找到好的答案。我知道您可以像这样通过引用传递变量:voidfunct(int&anInt);。您将如何做类似的事情,但参数不是对变量的引用,而是对函数的引用?此外,您将如何在函数体中使用对函数的引用? 最佳答案 #includeusingnamespacestd;voiddoCall(void(&f)(int)){f(42);}voidfoo(intx){cout

【JasperReports笔记02】如何使用Jasper Studio中的table组件制作简单表格模板文件,并且通过Java + Parameters参数填充表格数据

这篇文章,主要介绍如何使用JasperStudio中的table组件制作简单表格模板文件,并且通过Java+Parameters参数填充表格数据。目录一、Jasper制作表格模板1.1、制作模板文件(1)创建参数(2)添加table组件(3)添加表格列头(4)创建表格Field字段(5)表格使用Field字段(6)设置表格数据集来源1.2、使用Java填充模板文件(1)引入依赖(2)添加模板文件(3)编写JasperReportsUtil工具类(4)编写测试类(5)运行测试一、Jasper制作表格模板1.1、制作模板文件(1)创建参数首先打开JasperStudio开发工具,创建一个MyTab

c++ - LLVM 即时编译 : pass C++ exception through JIT code back to host application

我正在开发一个项目,我使用clang生成一些LLVMIR,然后在我的主机应用程序中进行JIT编译和运行。JIT代码调用宿主应用程序中的某些函数可能会引发异常。我希望通过JIT代码抛出异常并在主机应用程序中捕获。据我所知,这应该与LLVM一起使用,但不幸的是,我的测试应用程序总是因“在抛出‘int’实例后调用终止”而崩溃。让我举个简单的例子。我使用clang3.5将以下简单程序编译成LLVMIR:externvoidtest();extern"C"voidexec(void*){test();}与./clang-O0-S-emit-llvmtest.cpp-c结果为test.ll;Mod