草庐IT

包装类

全部标签

android - 设置 WebView 的宽度来包装 HTML 内容?

我需要一个Activity来将HTML文档加载到WebView中,但随后要调整WebView的大小,以便它紧紧包裹HTML文档。例如如果HTML文档包含一个大小为300x200像素的div,我希望WebView的大小调整为300pxx200px以准确包含该文档。垂直WebView自然地以这种方式运行。WebView(带有wrap_content)的高度由HTML文档的高度决定,但奇怪的是不是宽度总是填充宽度(除非为宽度指定了尺寸)。也就是说,据我所知,将layout_width="wrap_content"与WebView一起使用是行不通的。有没有办法配置WebView以这种方式调整其

c++ - 如何将 std::chrono 包装在 C++ 迭代器类型中

我尝试创建一个可迭代类型,它接收特定持续时间类型的模板参数,例如std::seconds、std::hours等,我希望它接收代表指定持续时间的time_points的参数2值,并且能够通过增加当前time_point在基于范围的for循环中使用这样的构造>按该持续时间或指定持续时间的单位,类似于以下内容:DateRangedr(now(),50);for(autod:dr){//dosomethingatunittime}我试过这样实现usingnamespacestd::chrono;template,typenameTime_pointer=Time_type*>classDat

c++ - 在 perl 中调试由 SWIG 包装的共享库

我在Perl中使用SWIG包装了我的C/C++代码。由于包装代码,我几乎没有段错误。我正在尝试将ddd与Perl脚本一起使用,但不幸的是,即使我在脚本的一行(调用C/C++代码的代码)上设置断点,ddd也是无法进入C/C++代码。当我调试Perl代码时,有什么方法可以在我的C库中设置断点,或者当我运行此Perl脚本时,您知道调试C库的好方法/工具吗?我正在使用Linux/gcc。 最佳答案 我做了一件简单的事情。我直接在perl解释器上调用了gdb。gdb/usr/bin/perl(gdb)rmyscript#blockthescr

c++ - 如何绑定(bind)传递未指定调用包装器的成员函数模板

我尝试使用VC11和g++4.7.2编译以下示例:#includeclassX{public:templateexplicitX(Tt){std::bind(&X::invoke,this,t)();}private:templatevoidinvoke(Tt){t();}};classY{public:voidfoo(){//...}};intmain(){Yy;Xx(std::bind(&Y::foo,&y));return0;}但它以错误结束。我不确定粘贴整个编译器输出是否合理,但一般来说vc11说:errorC2664:'voidstd::_Pmf_wrap::operator

c++ - 智能指针能否有选择地隐藏或重定向函数调用到它们正在包装的对象?

我正在从事一个项目,其中某些对象被引用计数——它与COM的设置非常相似。不管怎样,我们的项目确实有智能指针,可以减少为这些对象显式调用Add()和Release()的需要。问题是有时,开发人员仍然使用智能指针调用Release()。我正在寻找的是一种从智能指针调用Release()时创建编译时或运行时错误的方法。编译时对我来说似乎是不可能的。我以为我有一个运行时解决方案(见下面的代码),但它也不能完全编译。显然,使用operator->()后不允许隐式转换。无论如何,任何人都可以想出一种方法来完成我想要完成的事情吗?非常感谢您的帮助!凯文#include#includeusingnam

c++ - 为什么 VC++ 无法优化整数包装器?

在C++中,我试图围绕64位整数编写一个包装器。我的期望是,如果编写正确并且所有方法都是内联的,那么这样的包装器应该与真实类型一样高效。对此question的回答onSO似乎符合我的预期。我写这段代码是为了测试我的期望:classB{private:uint64_t_v;public:inlineB(){};inlineB(uint64_tv):_v(v){};inlineB&operator=(Brhs){_v=rhs._v;return*this;};inlineB&operator+=(Brhs){_v+=rhs._v;return*this;};inlineoperatorui

c++ - 通用对象包装器

我想知道是否有一种好的、通用的方法来编写一个对象包装器,这样您就可以调用它包装在包装器类本身上的类定义的所有方法(而不必在包装器中显式地重新定义类接口(interface)类(class))。例如,两个不同的任意类:classInnerExample1{public:InnerExample1(inta,boolb){...}voidDoSomething1(inta){...}boolDoSomething2(boolb){...}etc...};classInnerExample2{InnerExample2(floata,intb){...}voidDoWork(inta){..

c++ - 用于函数对和模板特化的 RAII 包装器

我已经为初始化和释放资源的C函数对编写了一个RAII包装器,它在大多数情况下都很适合我。#include#include#include#includetemplateclassRAIIWrapper{public:templateRAIIWrapper(InitFuncTypeinitializer,UninitFuncTypeuninitializer,conststd::string&errorString,constArgs&...args):uninit_func(uninitializer){if(successValue!=initializer(args...))thr

使用模板围绕任何集合类型的 C++ 包装器

对c++非常陌生,但是对模板有疑问假设我有一个简单的模板类,定义如下:templateclassMySack{private:Collectionc;public:typedeftypenameCollection::value_typevalue_type;voidadd(constvalue_type&value){c.push_back(value);}};该类的目的是接受任何类型的集合,并允许用户为指定的typenameCollection插入正确类型的值。明显的问题是,这仅适用于定义了push_back方法的类型,这意味着它适用于list但不适用于设置。我开始阅读有关模板特化

c++ - 用 boost python 包装 C++ 模板类

我正在尝试用boothpython包装一个C++模板类。当前包装器出现错误。该程序基本上用于创建自定义vector并在python中使用它。#includetemplateclassallocator{public:T*allocate(size_t);voiddeallocate(T*,size_t);voidconstruct(T*,T);voiddestroy(T*);};templateclassvec{typedefT*iterator;typedefconstT*const_iterator;typedefsize_tsize_type;typedefTvalue_type