草庐IT

包装类

全部标签

c++ - 用 const std::vector 包装现有内存?

好的,所以我最近了解到(a)std::vector根据定义/标准使用连续内存,因此(b)&(v[0])是该连续内存块的地址,您可以读/写作为老式C数组。喜欢...voidprintem(size_tn,int*iary){for(size_ti=0;iv;for(size_ti=0;i好的,这很酷,但我想换个方向。我有很多现有的代码,比如doublecomputeSomething(conststd::vector&v){...}如果我有一个对象的C数组,我可以使用这样的代码:SomeClasscary[100];//100*sizeof(SomeClass)//populatethi

c++ - 用 const std::vector 包装现有内存?

好的,所以我最近了解到(a)std::vector根据定义/标准使用连续内存,因此(b)&(v[0])是该连续内存块的地址,您可以读/写作为老式C数组。喜欢...voidprintem(size_tn,int*iary){for(size_ti=0;iv;for(size_ti=0;i好的,这很酷,但我想换个方向。我有很多现有的代码,比如doublecomputeSomething(conststd::vector&v){...}如果我有一个对象的C数组,我可以使用这样的代码:SomeClasscary[100];//100*sizeof(SomeClass)//populatethi

C++:行为就像函数本身一样的函数包装器

如何编写一个可以包装任何函数并且可以像函数本身一样被调用的包装器?我需要这个的原因:我想要一个Timer对象,它可以包装一个函数并像函数本身一样运行,而且它记录所有调用的累积时间。场景如下所示://afunctionwhoseruntimeshouldbeloggeddoublefoo(intx){//dosomethingthattakessometime...}Timertimed_foo(&foo);//timed_fooisawrappingfctobjdoublea=timed_foo(3);doubleb=timed_foo(2);doublec=timed_foo(5);

C++:行为就像函数本身一样的函数包装器

如何编写一个可以包装任何函数并且可以像函数本身一样被调用的包装器?我需要这个的原因:我想要一个Timer对象,它可以包装一个函数并像函数本身一样运行,而且它记录所有调用的累积时间。场景如下所示://afunctionwhoseruntimeshouldbeloggeddoublefoo(intx){//dosomethingthattakessometime...}Timertimed_foo(&foo);//timed_fooisawrappingfctobjdoublea=timed_foo(3);doubleb=timed_foo(2);doublec=timed_foo(5);

python - 使用 boost::python vector_indexing_suite 包装 std::vector

我正在开发一个带有Python绑定(bind)(使用boost::python)的C++库,表示存储在文件中的数据。我的大多数半技术用户将使用Python与之交互,因此我需要使其尽可能Pythonic。不过,我也会让C++程序员使用API,所以我不想在C++方面妥协以适应Python绑定(bind)。图书馆的很大一部分将由容器组成。为了让python用户更直观,我希望他们表现得像python列表,即:#anexamplecompoundclassclassFoo:def__init__(self,_val):self.val=_val#addittoalistfoo=Foo(0.0)v

python - 使用 boost::python vector_indexing_suite 包装 std::vector

我正在开发一个带有Python绑定(bind)(使用boost::python)的C++库,表示存储在文件中的数据。我的大多数半技术用户将使用Python与之交互,因此我需要使其尽可能Pythonic。不过,我也会让C++程序员使用API,所以我不想在C++方面妥协以适应Python绑定(bind)。图书馆的很大一部分将由容器组成。为了让python用户更直观,我希望他们表现得像python列表,即:#anexamplecompoundclassclassFoo:def__init__(self,_val):self.val=_val#addittoalistfoo=Foo(0.0)v

c++ - 如何使用 SWIG 在 C++ API 上生成 C 包装器?

这个问题在这里已经有了答案:C++toCWrapperusingSWIG(forFLTK)(1个回答)关闭6年前。我想使用SWIG在一些C++API上生成C包装器。来自SWIG文档SWIGandC++:6.2ApproachTowrapC++,SWIGusesalayeredapproachtocodegeneration.Atthelowestlevel,SWIGgeneratesacollectionofproceduralANSI-Cstylewrappers.Thesewrapperstakecareofbasictypeconversion,typechecking,erro

c++ - 如何使用 SWIG 在 C++ API 上生成 C 包装器?

这个问题在这里已经有了答案:C++toCWrapperusingSWIG(forFLTK)(1个回答)关闭6年前。我想使用SWIG在一些C++API上生成C包装器。来自SWIG文档SWIGandC++:6.2ApproachTowrapC++,SWIGusesalayeredapproachtocodegeneration.Atthelowestlevel,SWIGgeneratesacollectionofproceduralANSI-Cstylewrappers.Thesewrapperstakecareofbasictypeconversion,typechecking,erro

c++ - 如何让 vim 包装三斜杠注释?

我经常使用gq将较长的注释包装到一定数量的字符内,如果我使用//或/*/*评论我的代码://hereisasimplecommentthatexceedsmylinewidth//acrossmultiplelines//hereisasimplecommentthat//exceedsmylinewidthacross//multiplelines但是,如果我有三斜杠注释,例如对于doxygen,它不起作用:///hereisasimplecommentthatexceedsmylinewidth///acrossmultiplelines///hereisasimplecommen

c++ - 如何让 vim 包装三斜杠注释?

我经常使用gq将较长的注释包装到一定数量的字符内,如果我使用//或/*/*评论我的代码://hereisasimplecommentthatexceedsmylinewidth//acrossmultiplelines//hereisasimplecommentthat//exceedsmylinewidthacross//multiplelines但是,如果我有三斜杠注释,例如对于doxygen,它不起作用:///hereisasimplecommentthatexceedsmylinewidth///acrossmultiplelines///hereisasimplecommen