草庐IT

language-binding

全部标签

c++ - std::clamp - 检测函数返回值是否绑定(bind)到 const T&

最好不要将std::clamp返回值绑定(bind)到constref,如果它的min或max参数之一是右值.std::clamp的典型实现(非常简化):templateconstexprconstT&clamp(constT&value,constT&min,constT&max){returnvalue正如cppreferenceforstd::clamp中所述当有人写下时,情况很危险:intn=-1;constint&r=std::clamp(n,0,255);//risdangling有没有办法在编译时检测这些情况? 最佳答案

c++ - 绑定(bind)到底是什么意思?

当我实际使用他们的C++库时,我总是看到人们提到“Python绑定(bind)”和“CSharp绑定(bind)”等。绑定(bind)是什么意思?如果库是用C编写的,Python绑定(bind)是否意味着他们使用SWIG类工具来模拟Python接口(interface)?这个领域的新手,欢迎任何建议。 最佳答案 当有人谈论诸如库的“C#绑定(bind)”之类的内容时,他们表示您和API是在C#中为以不同语言编写的库提供的。这可能涉及也可能不涉及SWIG等自动生成工具。 关于c++-绑定(

c++ - boost::bind 和 boost::lambda::bind 有什么区别?

我可以看到Boost有两个不同的绑定(bind)库,一个是“独立的”,可以通过包含boost/bind.hpp来使用,另一个可以通过包含boost/lambda/bind.hpp。这两者有什么区别? 最佳答案 看看这里的解释:http://boost.org/doc/libs/1_46_0/doc/html/lambda/s08.html#id2143701它们具有重叠的功能,但由于语义不同,它们不能交错使用。 关于c++-boost::bind和boost::lambda::bind有

c++ - gcc 的 std::bind 在哪里将参数复制到数据结构中?

为了了解std::bind分配内存的情况,我查看了thisanswer,这给出了一些直觉,但我想要更详细的了解,所以我去查看了gcc的源代码。我正在检查followingsourcecode对于来自C++标准库的gcc实现的std::bind。/***@briefFunctiontemplateforstd::bind.*@ingroupbinders*/templateinlinetypename_Bind_helper::value,_Func,_BoundArgs...>::typebind(_Func&&__f,_BoundArgs&&...__args){typedef_Bi

c++ - 如何将 C++ 属性绑定(bind)到 QML 属性?

所以我知道如何将QML属性绑定(bind)到C++属性,所以当C++调用通知信号时,QML会更新View。当用户使用UI更改某些内容时,有什么方法可以使C++属性更新吗?例如,我有一个组合框,我希望在用户更改组合框的值时更新某些C++属性。编辑:我所说的C++属性是指QObject派生类中的Q_PROPERTY宏。 最佳答案 要从您未在QML中创建(或在其他上下文中创建)的对象绑定(bind)属性,您必须使用Binding.在你的情况下:Binding{target:yourCppObjectproperty:"cppPropert

c++ - 将 std::bind 与 boost::signals2 一起使用是否安全?

使用std::bind将成员函数传递给boost::signals2::signal::connect()是否安全?换句话说,boost::bind和std::bind可以互换吗?它使用VC++2010SP1编译,但模板代码让我难以理解,恐怕我可能会冒险进入未定义的行为领域。 最佳答案 我在这方面没有经验,因为我希望connect接受任何实现有效函数调用运算符的东西。使用与签名匹配的任何函数或函数对象调用它应该是安全的,无论是boost::bind、std::bind还是其他任何东西。Boost库被设计为通用的,因此它们通常不会互相

java - 运行时动态绑定(bind)和类继承的区别

我试图阐明动态语言(Python、ruby)和静态类型语言(java、C++)中运行时动态绑定(bind)和类继承的概念。我不确定我是否正确。在像Python和Ruby这样的动态语言中,运行时动态绑定(bind)是通过ducktyping实现的。当解释器检查对象的类型时,它检查对象是否具有特定的方法(或行为),而不是检查对象的类型;运行时动态绑定(bind)并不意味着类继承。类继承只是减少了Python和Ruby中的代码复制。在Java、C++等静态类型语言中,运行时动态绑定(bind)只能通过类继承获得。类继承不仅减少了这里的代码拷贝,还用于实现运行时动态绑定(bind)。综上所述,

c++ - 复制省略和临时绑定(bind)引用对象

C++草案指出:12.8p31Thiselisionofcopy/moveoperations,calledcopyelision,ispermittedinthefollowingcircumstances(whichmaybecombinedtoeliminatemultiplecopies):(...)whenatemporaryclassobjectthathasnotbeenboundtoareference(12.2)wouldbecopied/movedtoaclassobjectwiththesamecv-unqualifiedtype,thecopy/moveoper

c++ - 在 C++ 中自动绑定(bind) boost::thread?

做的时候:std::vectorvec;intnumber=4;boost::threadworkerThread(&Method,number,vec)givenamethod:templatevoidMethod(intn,std::vector&vec){//doesstuff}为什么我必须手动做:boost::threadworkerThread(&Method,number,boost::ref(vec))?为什么它不通过引用自动传递它?Edit::理论上boost::thread是否有可能做一些宏元编程来调整它,因为C++没有内置反射/内省(introspection)的方

C++ QT OSX Qt::META+Qt::Key_Tab 快捷键绑定(bind)

我正在尝试在QTabWidget中绑定(bind)Qt::META+Qt::Key_Tab快捷方式来切换标签(就像它在Chrome或许多其他应用程序)。我已经尝试了在谷歌中找到的每一个解决方案,但这个快捷方式组合不起作用。我试过:Qt::Key_Control+Qt::Key_Tab、Qt::Key_Meta+Qt::Key_Tab组合code>,QKeySequence(Qt::Key_Meta,Qt::Key_Tab),QKeySequence(Qt::META,Qt::Key_Tab)等QShortcutQAction使用虚拟QWidget::event捕获键使用虚拟QWidge