Articles of wrapper

Comment imprimer un élément Mat à l’aide de cette enveloppe C de base pour l’object ptr C ++ Mat Class

J’écris un wrapper C pour du code OpenCV C ++ et j’ai 2 fonctions que j’utilise pour créer un object Mat et lui atsortingbuer des données, cv_create_Mat_type et cv_Mat_ptr_index, respectivement. Les fonctions sont comme elles doivent être, je ne peux pas les changer car il y a une partie d’un projet sur lequel je travaille. […]

Cython cdef La classe n’affiche pas la chaîne de documentation ou les parameters __init__

J’ai utilisé cdef pour définir une classe python qui encapsule une classe C ++ avec Cython et cela fonctionne correctement. Cependant, quand j’utilise help (classe) en python ou en classe? Dans ipython, je reçois quelque chose comme: >>> TestClass.CTestClass? Init signature: TestClass.CTestClass() Docssortingng: File: ~/Coding/CythonWithCppTutorials/ClassCythonCPPWithMemberFunctions/TestClass.so Type: type Qui n’affiche pas de chaîne de documentation ou […]

Comment envelopper les callbacks de la bibliothèque C dans C ++ / CLI

Étant donné que la bibliothèque C suivante avec un événement de rappel demande de définir un tampon, comment écrire un wrapper C ++ / CLI approprié de manière sécurisée? // The callback signature typedef void (__cdecl *BUFFERALLOCATOR)(void *opaque, void **buffer); // A struct that contains the context of the library struct lib_context_base_s { // The […]

Définir un type d’iterator dans un conteneur stl

Quelle est la bonne façon d’écrire une classe wrapper autour d’un conteneur STL, qui est aussi un modèle (peut accepter un type générique T comme élément) et me permet d’utiliser un iterator comme je le ferais directement avec le conteneur STL? Je veux faire quelque chose du type suivant #include #include class MyClass{}; template class […]

fonction de modèle d’habillage et <type de fonction surchargé non résolu

J’ai un problème avec ma fonction d’emballage. template void wrap(Iter first, Iter last, SomeFunction someFunction) { someFunction(first, last); } Je voudrais l’utiliser comme ceci: template void fill5(Iter first, Iter last) { fill(first, last, 5); } int main() { vector v(100, -1); wrap(v.begin(), v.end(), fill5); } Mais je reçois test.cpp: In function ‘int main()’: test.cpp:16:40: error: […]

Utilisation de la DLL COM en C #

Nous avons COM dll qui a été écrit en C ++ et a été utilisé par les applications écrites en vb 6.0. Les plans de mon entreprise écrivent les nouvelles versions des applications sur la plate-forme .Net. En ce qui concerne les performances, lorsque vous utilisez une dll COM dans un projet C #, que […]

Enveloppe C ++ pour l’algorithme de recherche de racine GSL avec dérivé

Ainsi, bien que je sois assez heureux de trouver beaucoup de réponses sur Stack Overflow, j’ai décidé qu’il était temps de poser une question moi-même. J’essaie d’utiliser un algorithme de recherche de racine avec des dérivés . Conformément au GSL, je dois définir la fonction et sa dérivée à l’avance. Mais je me demande si […]

Méthode intelligente pour construire le membre de la classe std :: vector <std :: unique_ptr >

Cette question combine unique_ptr en tant que membre de la classe et la sémantique de déplacement échoue lors de la compilation avec clang et C ++ std :: vector dans le constructeur . Mon but est de construire un wrapper struct V_wrapper{ std::vector<std::unique_ptr > vec; V_wrapper(std::vector<std::unique_ptr > v) : vec{std::move(v)} {} }; Malheureusement, ce code […]

Utiliser la surcharge de valeur et la surcharge de l’opérateur () pour simplifier la conception des getter / setter: une pratique dangereuse?

Considérez la classe suivante: class MyClass1 { public: double x() const {return _x;} // getter double y() const {return _y;} // getter double z() const {return _x*_y;} // getter void x(const double var) {_x = var;} // setter void y(const double var) {_y = var;} // setter void z(const double var) {_x = var; _y […]

Impossible d’append une transmission parfaite à la fonction wrapper

En répondant à cette question, j’ai écrit ce code de travail en encapsulant la fonction dans les arguments du modèle: template auto wrapper(Args… args)->decltype(fn(args…)){ return fn(args…); } #define WRAPPER(FUNC) wrapper Exemple d’utilisation (j’utilise ce code pour les tests): int min(int a, int b){ return (a<b)?a:b; } #include using std::cout; int main(){ cout<<WRAPPER(min)(10, 20)<<'\n'; } Deux […]