Forum Programmation.c++ Techniques d'optimisation C++

Posté par . Licence CC by-sa
Tags : aucun
2
8
nov.
2014

Bonjour à tous

Je cherche des ressources sur le net à propos des techniques d'optimisation en c++, et bizarrement je ne trouve pas grand chose. Mon problème est simple : je développe des outils de traitement d'images à la fois de grandes tailles et nombreuses. Ce sont des algorithmes scientifiques peu efficaces quand ils sont implémentés "naïvement", mais qui peuvent être grandement optimisés… si je savais comment faire !
Il y a bien quelques tutos sur le principe de localité, le (...)

Forum Programmation.c++ MXE : cross-compilation Linux > Windows en 64 bits

Posté par (page perso) . Licence CC by-sa
0
5
nov.
2014

Bonjour,
je m'emmêle un peu les pinceaux avec les possibilités offertes par le projet MXE. Depuis Linux, j'ai à cross-compiler un projet (C++/Qt5) vers du Windows, en 32 bits et en 64 bits. Je lis que MXE peut utiliser ou bien MinGW 3x/4x ou bien MinGW-w64. Pourriez-vous confirmer si les points suivants sont exacts ?

(1) après l'installation vers un répertoire que je nomme mxe32(a), un make gcc qt5 crée un mxe32/usr/bin/i686-pc-mingw32-gcc . J'imagine qu'il s'agit d'un gcc issu (...)

Forum Programmation.c++ Re-compilation carte PCI Altera ADP6x01

Posté par . Licence CC by-sa
Tags : aucun
0
9
oct.
2014

Bonjour,

Je cherche de l'aide pour compiler ma carte PCI Altera ADP6x01. Après un formatage du disque dur du PC ayant pour OS Windows XP, j'ai procédé à une réinstallation de L'OS ainsi que le driver de la carte bien reconnue PCI Altera ADP6x01. Aujourd'hui, j'ai un message d'erreur que voici : "Can't open FPGA file ( C:\Program Files\GSM\Load\Y14x3m31.hex".
Je sais que c'est une carte qui doit être configurée sous linux. Est-ce que quelqu'un pourrait m'aider s'il vous plait.

(...)

Forum Programmation.c++ Autocomplétion dans QtCreator comme dans Eclipse

Posté par . Licence CC by-sa
1
16
sept.
2014

Bonsoir tout le monde,

Dans mon travail, je fais du Java avec l'IDE Eclipse. Chez moi, j'aurais voulu bidouiller petit peu de Qt et j'utilise l'IDE QtCreator, qui à l'air d'être celui de référence.

J'ai créé un petit projet mais je suis étonné que je ne retrouve pas l'autocomplétion comme dans Eclipse. Par exemple, j'ai créé une classe DirectoryObject et j'aurais voulu que lorsque je commence à taper son nom dans ma fonction main(), qu'après un Ctrl + Espace, il (...)

Forum Programmation.c++ problème avec la sdl [Résolu]

Posté par . Licence CC by-sa
Tags : aucun
0
10
mai
2014

Bonjour,

je suis plutôt un débutant et je suis le tutoriel du Site Du Zéro pour la SDL – à l'intérieur de celui pour le langage C mais j'ai décidé de travailler la SDL avec C++. Je travaille sur Linux Mint Debian avec Code::Blocks 12-11.3 ; j'ai installé les paquets libsdl2-dev 2.0.0+dfsg1-3 ainsi que libsdl2-2.0-0 2.0.0+dfsg1-3. Je travaille donc avec SDL 2.0 et non pas avec SDL 1.2 — avec lequel je n'ai pas de problème particulier. Lors de la compilation (...)

Forum Programmation.c++ validation de documents XML (question sur les schema XSD)

Posté par . Licence CC by-sa
Tags :
0
7
mai
2014

Bonjour,

je cherche à valider un document XML qui pourrait ressembler à ça (en simplifiant) :

<root>
  <network type="tcp">
    <host>10.0.0.1</host>
    <port>1234</port>
  </network>
</root>

...

<root>
  <network type="serial">
    <device>/dev/ttyS0</device>
  </network>
</root>

(la présence de <device/> ou <host/> dépend de l'attribut "type" de la balise parente)
malheureusement, je n'ai pas trouvé comment valider ça.
en XSD 1.0 je peux dire que la balise network peut avoir comme éléments host et device.
en (...)

Forum Programmation.c++ Aide sur du code C++ dans Qtopia

Posté par (page perso) . Licence CC by-sa
Tags : aucun
1
26
fév.
2014

Hello!

Je suis en train d'essayer de débugger l'application QtopiaMail de QtMoko qui n'arrive pas à lire les mails qui contiennent plusieurs parties dans leur message (une partie html et une partie txt par exemple).

Je m'y connais peu en C++, mais j'ai réussi à déterminer depuis quelle fonction sont crées les messages, la voici :

/*!
   Returns the QMailMessage defined by a QMailMessageId \a id from 
   the message store.
*/
QMailMessage QMailStore::message(const QMailMessageId& id
(...)

Forum Programmation.c++ Appeler une méthode non-const à partir de la méthode const homonyme

Posté par . Licence CC by-sa
Tags :
2
8
jan.
2014

Histoire de ne pas mourir idiot, je me demandais s'il y avait un moyen élégant d'appeler une méthode const à partir de son équivalent non-const. Le contexte ressemble à ça:

#include <vector>
#include <iostream>
#include <cassert>

using namespace std;

class A {
   public: 
      A(vector<double>);
      double mean();
      double mean() const;

   protected:
      void initialize();
      bool is_initialized;
      const vector<double> data;
      double sum_i;
};

A::A
(...)

Forum Programmation.c++ Quelle librairie pour du réseau?

Posté par . Licence CC by-sa
Tags : aucun
0
10
déc.
2013

Bonjour,

j'ai besoin d'une librairie pour que des ordinateurs puissent communiquer entre eux. Je connais déjà les modules QtNetwork et Network de Qt et SFML respectivement et après un peu de recherche, je suis tombé sur Boost.Asio.
Je connais déjà les deux premier, cependant j'ai jamais vraiment regardé, ni utilisé Boost.

Le but du programme (ou plutôt sous-programme) est de pouvoir créer un réseau privé entres utilisateurs qui se connaissent et de pouvoir faire des actions du type "Tu envoies (...)

Forum Programmation.c++ Constructeur : mauvais constructeur choisi

Posté par . Licence CC by-sa
Tags : aucun
1
29
sept.
2013

Bonjour,

Je code un programme et le compilateur m'envoie un message bien cryptique.
J'ai une classe MaClasse qui hérite de QObject (en public). Elle contient un pointeur vers un QTcpSocket.
Dans le header de la classe, je n'ai défini qu'un seule constructeur :

class MaClasse : public QObject
{
public:
    MaClasse (QTcpSocket* socket);

private:
    QTcpSocket* m_socket;
};

La définition est très simple:

MaClasse::MaClasse (QTcpSocket* socket) : m_socket (socket)
(...)

Forum Programmation.c++ Problème d'héritage

Posté par . Licence CC by-sa
Tags : aucun
1
11
août
2013

Bonjour,

Récemment, j'ai un problème d'héritage en C++ qui est un peu exotique je trouve.

classefille.cpp:4: erreur : class 'ClasseFile' does not have any field named 'm_attribut'
     m_attribut (attribut)
     ^

J'ai une classe ClasseMere qui possède un attribut, une référence d'un objet. La classe ClasseFille en hérite, mais ne semble pas posséder elle aussi cet attribut, alors qu'il est bel et bien en protected.
Enfin bref, je poste le (...)

Forum Programmation.c++ Questions de débutant

1
18
juil.
2013

Bonjour,

Je ne suis pas spécialement débutant en C++ mais j’ai jamais vraiment conçu l’architecture d’un programme un peu gros. Je réalise un ce moment un petit jeu en C++.

  • j’ai une arborescence de classes mais c’est assez lourd. Grâce au mot-clé «using» de C++11 je peux quand même réutiliser le constructeur de la classe parente mais souvent je dois faire un petit truc en plus, donc je ne peux pas l’utiliser.

  • dans la future partie qui permettra l’affichage des (...)

Forum Programmation.c++ [RESOLU] Constructeur par défaut et méthodes de classe

Posté par . Licence CC by-sa
Tags : aucun
0
18
juil.
2013

Bonjour,

Je viens de tomber sur quelque chose qui m'intrigue.
J'ai le code suivant :

// fichier main.cpp

#include <iostream>
#include "pouf.h"

int main()
{
    Pouf chien();
    int nb = chien.getTaille();
    std::cout << nb << std::endl;

    return 0;
}
// fichier pouf.h

#ifndef POUF_H_INCLUDED
#define POUF_H_INCLUDED

class Pouf
{
    public:
        Pouf();
        int getTaille();

    protected:
        int m_taille;
};

#endif // POUF_H_INCLUDED
// fichier pouf.cpp

#include "pouf.h"

Pouf
(...)

Forum Programmation.c++ Quelle bibliothèque choisir pour un petit jeu?

Posté par (page perso) . Licence CC by-sa
Tags :
3
7
juil.
2013

Bonjour,

Je souhaite faire pendant les vacances un petit clone libre de Wonderland (excellent jeu au passage). C’est en gros un Sokoban amélioré car il y a pleins d’objets aux propriétés différentes, des monstres, et il faut prendre des clés (ici des espèces de pièces) pour ouvrir la grille qui permet d’accéder à la sortie.

Je pensais faire le jeu avec la SFML et Qt pour les menus. D’un côté je me dis que ça me permet de toucher aux (...)

Forum Programmation.c++ Qt: Faire le nettoyage dans les layouts

Posté par . Licence CC by-sa
Tags : aucun
0
16
juin
2013

Bonjour,

Dans le but d'approfondir mes connaissances de Qt, je suis entrain d'écrire un programme.
Ce programme charge un layout qui hérite de QGridLayout. Cet objet/layout (appelons-le mainLayout) contient maintenant plusieurs layout (layout0, layout1, layout2, layout3) qui sont tous construit lors de la construction de mainLayout. Cependant, seulement layout0, layout1 et layout2 sont inclut à mainLayout via this->addLayout(). Je souhaite maintenant avoir la possibilité d'échanger layout2 et layout3 lorsqu'un certain signal est émit. Layout2 et layout3 contiennent chacun un (...)

Forum Programmation.c++ pthread : mutex, bien s'en servir

Posté par . Licence CC by-sa
Tags :
0
14
juin
2013

Salut,
Je suis en train de jeter un œil sur pthread (oui je sais C++11 arrive c'est plus la peine)
Mais le bon usage des mutex n'est pas clair pour moi

  • pthread_mutex_lock(&monmutex) : Si je comprend bien, lorsque plusieurs threads vérouillent le mutex, les autres se mettent en attente jusqu'à c que le mutex soit libéré ? 

  • pthread_cond_wait(signal,mutex) Va créer une sorte de slot qui attend un signal et va simplement attendre le signal, mais à quoi sert le mutex ? Est-ce (...)

Forum Programmation.c++ Mutex avec plusieurs lecteurs simultanés

Posté par . Licence CC by-sa
Tags : aucun
0
13
juin
2013

Bonjour,
dans le cadre d’une implémentation, je veux accéder à des données depuis plusieurs fils d’exécution. Le nombre de lecture étant très supérieur aux nombres d’écriture, je voudrais utilisé des mutex partagés.

std::mutex monMutex;

void lecture()
{
    monMutex.lock(std::mutex::read);
    
    monMutex.unlock();
}

void ecriture()
{
    monMutex.lock(std::mutex::write);
    
    monMutex.unlock();
(...)

Forum Programmation.c++ Conversion en mp3 avec libmp3lame

Posté par . Licence CC by-sa
Tags :
0
12
juin
2013

Salut,

Alors voilà, je suis en train d'essayer de comprendre comment marche la librairie lame pour encoder en mp3, le tout à partir d'un prog C++

Lame est assez mal documenté, j'ai un truc qui compile, qui parfois veut bien tourner (en jouant avec les params) mais clairement pas quelques chose qui marche, à prioris je dois pas comprendre la fonction : 

int lame_encode_buffer_interleaved  (   lame_global_flags *     gfp,short int   buffer[],int    nsamples,unsigned char *  mp3buf,   int     mp3buf_size)    

Voilà comment j'éssaye de (...)

Forum Programmation.c++ Compiler en statique, est-ce vraiment un problème ?

Posté par (page perso) . Licence CC by-sa
Tags : aucun
2
28
mai
2013

Salut, j'essaie tant bien que mal de compiler un binaire qui puisse tourner sur les distributions les plus célèbres à savoir Ubuntu, Fedora et OpenSuse. Sauf que c'est un vrai casse tête chinois au niveau des dépendances. Je compile sous ArchLinux et forcément j'ai en main les derniers versions de mes libs mais lorsque je décide de lancer mon binaire, l'une de ces distributions fournie jamais la bonne version de la lib.

Je me suis efforcé de rester en dynamique (...)

Forum Programmation.c++ problème de parsing avec CLang

Posté par . Licence CC by-sa
Tags : aucun
3
29
avr.
2013

Salut à tous,
J'essaie de compiler un gros projet (qui compile sous g++ et MSVC avec plein de warning activés et -Werr) avec CLang.
Mais mon projet ne compile pas, j'ai reproduit le problème de compilation avec le petit code suivant:

$ cat clang.cpp

#include <iostream>

template<typename PTR1, typename PTR2>
class Foo
{
private:
    PTR1 _t1;
    PTR2 _t2;
public:
    Foo(PTR1 t1 = NULL, PTR2 t2 = NULL) :
(...)

Forum Programmation.c++ operator new + boost::fast_pool_allocator

Posté par . Licence CC by-sa
2
20
avr.
2013

Bonjour,

Dans le cadre d'un de mes projets qui alloue/désalloue beaucoup d'objets de tailles diverses mais relativement petits (< 100o par objets), j'observe une consommation mémoire très supérieur à ce que ça devrait être.
Comme je soupçonne que la mémoire ressemble à du gruyère (plus il y a de gruyère, plus il y a de trous et plus il y a de trous, moins il y a de gruyère), j'ai voulu tester le pool allocator de boost en surchargeant l'operator (...)

Forum Programmation.c++ Une classe pour stocker des données

Posté par (page perso) . Licence CC by-sa
Tags :
0
29
mar.
2013

Bonjour,

Je suis en train de faire un programme qui devra lire des informations depuis un fichier, et toutes les autres classes devront pouvoir y accéder, sans duplication de données.

Je me demande donc comment faire cela proprement: créer une classe qui contient toutes les autres, une classe globale à tout le programme avec des attributs publics et constants, autre suggestion?

Merci d'avance,

Forum Programmation.c++ Compilateur "streamé"

Posté par (page perso) . Licence CC by-sa
Tags : aucun
2
24
mar.
2013

Salut à tous,

Je suis entrain de compiler Qt5 en -j5, et je bulle en attendant.

Donc voici:
Aujourd'hui, le processus de compilation, c'est ça:

  • je tape gcc moncode.c -c -o moncode.o
  • le shell lance /usr/bin/gcc dans un nouveau processus et lui passe les options
  • LDD entre en action, reloge les libs dont GCC a besoin (stdlib, ld, environ 500ko)
  • le main est enfin lancé, et parse les arguments
  • gcc va "automatiquement" lancer l'assembleur (ar) et l'éditeur de lien (ld), (...)

Forum Programmation.c++ Mon jeu fonctionne sur Linux

Posté par (page perso) . Licence CC by-sa
Tags :
19
15
mar.
2013

Hey salut ! Cela fait quelques semaines que j'avais sollicité les conseils de la communauté concernant un jeu que j'avais développé sous Windows en C# avec XNA. J'avais globalement terminé d'écrire l'essentiel du code, mais finalement je souhaitais porter tout le projet sur Linux pour de nombreuses raisons. La première est le manque cruel de shoot'em up sous Linux et la deuxième car j'apprécie énormément ce système d'exploitation. C'est mon premier projet en programmation et mon premier jeu, donc j'espère que (...)