Fejlesztés

C++ hiba [megoldva]

Fórumok

Sziasztok!

A probléma az alábbi kódra adódik:

//==================main.cpp==================

#include <iostream>
#include "array.h"
#include <functional>
#include <list>
#include <deque>

template <class T>
class Less: public std::unary_function<T, bool>
{
  T x;
public:
  Less(const T& t):x(t) {}
  bool operator()(const T& t) const
  {
    return t<x;
  }
};

template <class T>
class Print
{
  T s;
public:
  Print():s(0) {}
  void operator()(const T& a)
  {
    std::cout << a << ' ';
    s+=a;
  }
  T get() const
  {
    return s;
  }

  ~Print()
  {
    std::cout << std::endl;
  }
};

int main()
{
  int yourMark = 1;

  Array<int, 5> ai;
  Array<double, 3> ad(2.0);
  const Array<char, 2> ac('a');
  if ('a' == ac.at(0))
    yourMark = ac.size();


  const Array<double, 3> cad = ad;
  ai[0] = ai[1] = ai[2] = 3;
  ai[3] = ai[4] = 1;
  const Array<int, 5> cai = ai;
  yourMark = cai[0];

}

//==================array.h==================

#ifndef ARRAY_H
#define ARRAY_H

#include <vector>

template<typename T, int x>
class Array
{
public:
    Array() {tomb.reserve(x);};
    Array(T e)
    {
        tomb.reserve(x);
        for(int i=0; i<x; i++)
        {
            tomb[i]=e;
        }
    }


    T at(int h) const
    {
        return tomb[h];
    }

    int size() const
    {
        return x;
    }

Array& operator=(const Array& sName)
{
    if ( this == &sName )
        return *this;
    Clear();
    CopyFrom( sName );
    return *this;
}

    void Clear()
    {
        for(int i=0; i<x; i++ )
        {
        tomb.pop_back();
        }
    }

    void CopyFrom( const Array& sName )
    {
        for(int i=0; i<sName.size(); i++)
        {
            this.push_back(sName[i]);
        }
    }
    T& operator[](int y) const { return tomb[y]; }
private:

    std::vector<T> tomb;
};


#endif

A hiba pedig ez:
array.h: In member function `T& Array::operator[](int) const [with T = int, int x = 5]':
main.cpp:53: instantiated from here
array.h:55: error: invalid initialization of reference of type 'int&' from expression of type 'const int'

Eclipse, alkalmazás indítása külső konzolban

Fórumok

Sziasztok!

Ncursesben fejlesztek egy programot, amit eddig KDevelopban tettem. Magával az IDE-vel meg voltam elégedve, de debuggolni egyszerűen nem bírtam benne, mindig különféle hibát dobott, így váltottam Eclipse CDT 4-re.

Szépen beállítgattam, hogy ncursesszel forduljon le a progim, ami még működik, de a futó programot a saját, beépített konzoljában jeleníti meg, ami azért nem szerencsés, mert egyszerűen nem kezeli az ncursest.
Valami ilyesmik jönnek ki futtatáskor:

[C[31m[47m*[30m[47mUj jatek[16;37H[31m[47mBetoltes[18;37HMentes[20;37HKilepes[14;36H

Azt kéne elérnem, hogy vagy támogassa a konzol a cursest (amiben erősen kételkedem, hogy sikerülni fog) vagy pedig futtassa a progimat külön konzolban. Azt biztos meg lehet tenni, hogy belépek a programom könyvtárába, elindítom, valahogy hozzákapcsolom a folyamathoz a debuggert, de ez finoman szólva is körülményes.

A kérdésem, hogy be lehet-e Eclipse-ben állítani azt, hogy külső konzolban futassa a progit.
(Google alkalmazása már megtörtént)

IT vector & IT handler

Fórumok

Sziasztok!

Nem tudja valaki véletlenül, hogy linuxban hogyan rendelődnek össze az interrupt handlerek (amit a request_irq rendszerhívás első paramétereként átadok) és a tényleges fizikai interrupt vektorok?Axis processzort tartalmazó beágyazott rendszerre írkálok mostanában programokat. A processzoron (cris architektúra) 2.4.22-es mindenfélével agyon-patchelt linux fut.
A kérdéses interrupt a külső lábon érkezik, és fixen 0x2a címre van konfigurálva az IT vektora.
A vicc az, hogy tudom: 10-et kell átadnom irq számként a request_irq függvénynek, csak nem tudom, hogy miért.

Az O'Reilly Linux Device Drivers-ben ilyesmiről nem esik szó, az Understanding the Linux Kernel pedig csak a PC-s i386 architektúrával fogalkozik.

Nem megy az Anjuta-Ubuntun

Fórumok

Sziasztok!

Lehet láma kérdés de miért nem megy az Anjuta Ubuntu 7.10-en?Pontosabban megy a fordítás de aztán az összeállítás parancs már csak szürkével jelenik meg és nem tudok rákattintani!
Mit csináljak milyen csomag hiányozhat még?Fent vannak gcc cpp g++ bison make automake autogen autoconf meg még a binutils meg ilyenek de valami nem kóser az biztos.
Nekem meg égető szükségem lenne az Anjutára!
Köszi a válaszokat

c/c++ indexer

Fórumok

Sziasztok,

nagy projekthez keresek c/c++ indexelot. En JEditet hasznalok, de ez annyira nem fontos.

Kiprobaltam a szokasosakat, eleg nagy kiabrandulassal:
- ctags (ex.): ha van egy fgv deklaracio akkor kizarolag a deklaraciot talalja meg es menti a tags fajlba, a definiciot mar nem is. Kikapcsolni nem lehet, hiaba probaltam a --c-kinds=-p -vel. Gyakorlatilag hasznalhatatlan emiatt, mert a kodban sok elore deklaralas van (a c-ben nem a h-ban).
Sajnos erre mar csak akkor jottem ra amikor vegigszenvedtem a minden-konyvtarba-tags-fajlt-rakok jatekot.

- cscope: fajl static scope-ot nem figyel, emiatt egy talalatra mindig egy kupac lista az eredmeny, ami rendkivul faraszto minden egyes keresesnel, hogy meg a fajlt is megkeressem amiben eppen allok.

- eclipse CDT: allat lassu es tokig van indexer hibaval ami miatt en szemmel is tobbet latok mint amit o

- visual c++ 6: sikeres forditas nelkul nincs indexeles, erre meg igazabol nincs szukseg

Nem talalok olyan indexert ami kepes rendesen (pl fajl) scope alapjan indexelni, eleg jol konfiguralhato hogy milyen nyelvi elemeket exportaljon.

Tudtok ertelmes indexert javasolni ?

Koszi:
McHalls

[megoldva] Bash script kérdés

Fórumok

Valami ilyesmit szeretnék megvalósítani: egy gépen megosztottam egy mappát ("spool mappa"), amiben job.1...job.n fájlokban feladat definíciók vannak. A hálózat gépein futó azonos bash scripteknek össze kellene dolgozniuk: venni szépen sorban a job fájlokat, és végrehajtani a bennük definiált feladatokat. Megszorítás, hogy egyidőben egy feladaton csak egy script dolgozhat, mert különben összeakadnak.

Ennek biztosítására először egyszerű lock fájlokban gondolkodtam, amik jelzik a többi szkript számára, hogy az adott feladatot már valamelyik másik szkript példány elkezdte. Viszont azok ottmaradnak, ha a kérdéses szkript nem tud szabályosan kilépni, és ezután az adott job fájl (feladat) nem lesz végrehajtva.

Aztán arra gondolkodtam, hogy a .lock fájlt tartsa nyitva a feladatot végző szkript, és abból, hogy a lock fájlt valami nyitva tartja, a többi futó szkript példány tudja, hogy az a feladat már foglalt.
A konkrét megvalósítás ez lett volna:
touch job.n.lock; less job.n.lock &; pid=$! .... feladat végrehajtása ... ; kill $pid; rm job.n.lock

A többi script pedig egy
lsof job.n.lock
paranccsal ellenőrizhette volna a lock fájl nyitott voltát.

A gyakorlatban ez valamiért nem működik: az első lsof futtatáskor ezt kapom eredményül: "[7]+ Stopped less job.n.lock"; a további lsof futtatások pedig már nem írnak ki semmit, mintha a less már nem tartaná nyitva a .lock fájlt; pedig a ps szerint a less még fut. Less helyett vi-t használva ugyanez a helyzet.

Miért nem működik ez így, és milyen működő megoldást lehetne erre találni? Nincs esetleg egy olyan konzoli progi, ami semmi mást nem csinál, mint nyitva tart egy fájlt, amíg ki nem lövik?

Subversion (SVN) GUI választás

Fórumok

Sziasztok!

Egy külső nem általam felállított SVN szerveren lévő fájlokhoz szeretnék hozzáférni. Nem fejlesztőként fogom használni, dokumentumokat (MS Word, Excel, stb.) akarok le és feltölteni.

Ubuntu-n és Gnome alól akarom használni. Egy minél átláthatóbb/egyszerűbb/kényelmesebb "kattintgatos" GUI klienset keresek.

A Subversion oldalán ajánlott GUI kliensek közül 3-at találtam amelyik megfelelhet:
- RapidSVN (http://rapidsvn.tigris.org/)
- Subcommander (http://subcommander.tigris.org/)
- pysvn (http://pysvn.tigris.org/)

Ezeken kívül van-e még alkalmas jelölt?
Melyik a lenne a legalkalmasabb erre a feladatra?

----
Kiegészítő kérdés :)
Egy SVN szervert lehet/érdemes a saját gépre telepítve csak lokálisan használni egy-két könyvtárra?

Bluefish feljegyzés

Fórumok

Szervusztok!
Most tanulgatom a Bluefish használatát és két dolgot nem találok benne

- feljegyzés készítése
- saját kódok (samples) beillesztése a referenciák részbe (vagy máshova)

(vagy ilyen nincs is benne?)

Tudna segíteni valaki?
Köszönettel:

SPétör

websvn enscript vs. Makefile

Fórumok

Tiszteletem !
A fenti hármassal gyűlt meg a bajom, miszerint a kiterjesztés nélküli fájlokra nem tudok enscript maszkot húzni.

Az /etc/websvn/config.inc fájlban járok és az extEnscript(...) dolgot próbálom használni.
Ami ha van a fájlnak kiterjesztése sikerül, ha nincs ( Pl.: Makefile ) akkor nem. :(

Valami ötlet ?

Ps.:
A disztrib Debian Etch, de szerintem mindegy...