LINUX.ORG.RU

Сообщения staseg

 

[icq] wtf [COMPAD]?

Сейчас заметил, что к имени добавилась строка "[COMPAD]". Зашел на icq.com, отредактировал поле Niсkname. Эта хрень опять добавилась. Это АОЛовцы решили так почмырить пользователей альтернативных клиентов? Или у меня одного такое? PS. kopete.

PPS. Да, жаббер рулит, и вообще он кошерен и православен, но не тащить же всех знакомых на него.

 

staseg
()

C++, наследование шаблонного класса

Базовый класс:
template<typename T>
class A{
public:
virtual ~A(){}
A(int){printf("base class\n");}
};

Производный:
class B:public A<char*>{
public:
B(int var):A<char*>(var){printf("derived class\n");}
};

Можно ли избежать указания A<char*>(var) в списке инициализации конструктора производного класса? Т.е. сделать примерно так (именно так не работает):
B(int var):A(var){}

В <char*> из этого примера ничего ужасного нет, но у меня несколько параметров, причем один из них сам состоит из нескольких шаблонов, так что копипаста разрастется нехило.

PS. Курение книги по шаблонам с++ в ТУДУ, так что не предлагать.

staseg
()

C++, шаблон

Здравствуйте.
Не получается передать строку в качестве параметра шаблона функции.

template<int a>
void print(){
printf("%d\n",a);
}

template<const char *a>
void print_str(){
printf("%s\n",a);
}

int main(int argc,char **argv){
print<15>();
print_str<"lala">();//shit
return 0;
}

Функция print работает, а print_str не компилируется:
error: ‘"lala"’ is not a valid template argument for type ‘const char*’ because string literals can never be used in this context

Пробовал использовать QString вместо const char*, но и это не помогло.

staseg
()

Проблема с bluetooth

Проблема: не получается достучаться до телефона, хотя сканер его находит.

Задача: достучаться таки до него.

Гента, ядро 2.6.29-gentoo-r5. Драйвера блютуса (все, какие были) вкомпилены. bluez-utils и bluez-libs поставлены, /etc/bluetooth/hcid.conf настроен (все по мануалу с gentoo.org).

$service bluetooth start
лог:
Jun 25 17:02:54 [hcid] Bluetooth HCI daemon
Jun 25 17:02:54 [hcid] Parsing /etc/bluetooth/main.conf failed: No such file or directory
Jun 25 17:02:54 [hcid] Starting SDP server
Jun 25 17:02:54 [hcid] Unix socket created: 13
Jun 25 17:02:54 [hcid] Registered manager path:/org/bluez/audio
Jun 25 17:02:54 [hcid] Registered input manager path:/org/bluez/input
Jun 25 17:02:54 [hcid] Can't create GN bridge
Jun 25 17:02:54 [hcid] Registered manager path:/org/bluez/network
Jun 25 17:02:54 [hcid] Registered server path:/org/bluez/network/nap
Jun 25 17:02:54 [hcid] Registered server path:/org/bluez/network/gn
Jun 25 17:02:54 [hcid] Registered server path:/org/bluez/network/panu
Jun 25 17:02:54 [hcid] Registered manager path:/org/bluez/serial
Jun 25 17:02:54 [hcid] HCI dev 0 registered
Jun 25 17:02:54 [hcid] HCI dev 0 already up
Jun 25 17:02:54 [hcid] Device hci0 has been added
Jun 25 17:02:54 [hcid] Starting security manager 0
Jun 25 17:02:54 [hcid] Device hci0 has been activated

* main.conf нет, ничего не нашел про него, в доках только про hcid.conf говорят.
* Can't create GN bridge - хз...
* После старта сервиса появляется процесс hcid, но нету sdpd, который, судя по докам, должен быть. Но такой программы вообще нет (в системе). Судя по логу он все же стартует, может быть его запихали внутрь hcid, фиг знает...

Остальное в логе вроде бы все нормально.

$hciconfig
hci0: Type: USB
BD Address: 00:11:67:00:00:00 ACL MTU: 1021:4 SCO MTU: 48:10
UP RUNNING PSCAN ISCAN
RX bytes:6867 acl:0 sco:0 events:153 errors:0
TX bytes:4417 acl:0 sco:0 commands:154 errors:0

$hcitool scan
Scanning ...
00:0F:DE:83:8F:F0 stas

$l2ping 00:0F:DE:83:8F:F0
Can't connect: Connection timed out

Т.е. скан находит телефон, но пинг туда уже не идет. Также и obexftp не может законектиться.

На мандриве 2008.1 все работало. На 2009.1 не работало, причем аналогично. Но тогда не стал разбираться, она мне не понравилась совсем.

Буду благодарен за помощь, может быть кто-нибудь сталкивался с подобной проблемой.

staseg
()

C++ templates

$ cat test.cpp
template<typename T>
class test{
public:
typedef unsigned T unsig;
};
int main(){
test<int>::unsig var=0;
return 0;
}
$ g++ test.cpp -o test
test.cpp:4: error: invalid combination of multiple type-specifiers
test.cpp: In function ‘int main()’:
test.cpp:8: error: ‘unsig’ is not a member of ‘test<int>’
test.cpp:8: error: expected `;' before ‘var’

Пример совершенно безумный, да. Вопрос в том, как добраться до типа, определенного в темплейтном классе.

staseg
()

C, курсор

Здравствуйте.

Приделываю к проекту модуль управления из консоли. В идеале конечно хочется сделать и автодополнение, и хистори команд, но это не так важно. Столкнулся с проблемой, на которую раньше просто не обращал внимания - fgets с stdin, и при тыках стрелок на клаве "влево", "вправо" вместо передвижения курсора по введенному тексту происходит вывод (кода этих клавиш?) всякой дряни. Собственно вопрос в том, как сделать, чтобы дрянь не писалась, а курсор двигался?

>>>

staseg
()

Проблема с линковкой vpopmail

Здравствуйте.

$ cat test.cpp
#include"/home/vpopmail/include/vpopmail.h"
int main(){
char login[]="login",domain[]="domain",password[]="password";
vauth_user(login,domain,password,0);
return 0;
}

$ g++ -o test test.cpp -L/home/vpopmail/lib -lvpopmail
/home/staseg/tmp/ccYFS6Pf.o: In function `main':
test.cpp:(.text+0x8d): undefined reference to `vauth_user(char*, char*, char*, char*)'
collect2: ld returned 1 exit status


В доках к vpopmail сказано, что достаточно слинковать с /home/vpopmail/lib/libvpopmail.a и подключить /home/vpopmail/include/vpopmail.h. Пробовал подключить другие файлы из /home/vpopmail/include, но, как и ожидалось, не помогло.

Пробовал гуглить, ничего дельного не нашел.

g++ (GCC) 4.2.2 20070909 (prerelease) (4.2.2-0.RC.1mdv2008.0)
vpopmail 5.4.25

>>>

staseg
()

Проблема с QList (QT 4.3.1)

Доброго времени суток.
У меня проблема со следующим кодом:

QList<QList<int> >*xdata=new QList<QList<int> >;
xdata->push_back(QList<int>());
xdata->last()<<5646<<56456<<56489<<566;

for(int j=0,i=0;j<xdata->at(i).count();j++){
xdata->at(i)[j]+666;
if(j)qDebug()<<j<<": "<<xdata->at(i)[j]<<" - "<<xdata->at(i)[j-1];
}

По логике начиная с 1-го элемента должно выводиться построчно:
номер: текущий элемент - предыдущий элемент.
Фактически выводится
номер: текущий элемент - 1

Оптимизация отключена, строка `xdata->at(i)[j]+666;` фактически ничего не делает, обращается к элементу. Вместо нее можно выполнить например сравнение с числом. Если эту строку закомментировать, программа работает 'как надо'.

Если выводить начиная со второго элемента так:
if(j>1)qDebug()<<j<<": "<<xdata->at(i)[j]<<" - "<<xdata->at(i)[j-2];
программа опять же работает правильно.

Пробовал проводить абсолютно такие же телодвижения со своим списком - проблем нет.

Проблема наблюдается под Linux, в windows работает нормально.

Что делать и кто виноват?)

>>>

staseg
()

RSS подписка на новые темы