Mirki od #arduino #cpp #c etc. Poczebuję zrobić funkcję, która będzie wywoływana w różnych miejscach kodu i ma za zadanie zaraportować stan danego czujnika. Czasami będzie to sama temperatura, czasami temperatura i wilgotność, czasami temp/wilg/czujka + inne czujniki. Generalnie ilość danych różna. W jaki sposób rozwiązać kwestię deklaracji void'a? Stałe okazuje się być tylko void jakasfunckja (int nr czujki, nr_hardware... {reszta to już czasem: int, czasem float, czasem char char char etc.)
Mam aplikację napisaną w C++ pod Raspberry. Interfejs aplikacji zrobiony w QML. Gdy odpalam aplikację i dostaję warningi.

EGLFS: To override, set QT*QPA*EGLFS*PHYSICAL*WIDTH and QT*QPA*EGLFS*PHYSICAL*HEIGHT (in millimeters).


Eksportuje zmienne środowiskowe i dalej to samo. Gdy tego samego QML odpalam za pomocą qmlscene to wszystko działa jak należy. Pytanie takie, czemu dla programu napisanego w C++, który odpala tego QML nie są widoczne te zmienne środowiskowe?

Przekompilowuje właśnie całe QT i na sztywno
@Vetinari: tak jak mówiłem, dodaje te zmienne środowiskowe. Gdy uruchomię plik QML za pomocą qmlscrene (qmlscrene main.qml) to widzi je, gdy natomiast uruchomię za pomocą prostego programu:

#include <QtGui/QGuiApplication>


#include "qtquick2applicationviewer.h"



int main(int argc, char *argv[])


{


QGuiApplication app(argc, argv);


QtQuick2ApplicationViewer viewer;


viewer.setMainQmlFile(QStringLiteral("main.qml"));


viewer.showExpanded();


return app.exec();


}

To już nie widzi.
@Vetinari: oka, mój błąd. Potrzebowałem uruchamiać program jako root, więc używałem sudo. Wydawało mi się, że sprawdzałem uruchamianie bez sudo i ciągle miałem te warningi. Jednak nie. W dokumentacji sudo znalazłem, że jeżeli chcemy mieć zmienne środowiskowe takie jak użytkownik to musimy dodać parametr -E. Wszystko działa. Dziękuję za pomoc.
Mirki...

Zamiast pracować nad giełdą, na której moglibyście handlować najpierw pewnymi śmieszkowatymi walutami a potem bardziej poważnymi np. pisesełami ;) ...

Zachciało mi się prób kompilowania portfela #litecoin #dogecoin #cagecoin (w zasadzie chyba wszystkie portfele dla walut scryptowych to niemal ten sam kod, ale ten ostatni skusił mnie podwójnie, bo 1: autor oferował spore bounty za zbudowanie takiego portfela, a 2: zamykają mi kopalnię w której to kopałem i nie mam gdzie
@jascen: Łatwo niestety narzekać :P Nie mam pojęcia jaka jaka ksiąƶka teraz moƶe być uƶyteczna, nie widziałem jeszcze nic co bym z czystym sumieniem polecił.
@kuhar: operuję tylko na własnych plikach, więc raczej nie w tym rzecz

@sylwke3100: tak, w każdym nagłówkowym jest ifndef, tylko chodzi o to że plik a.cpp musi skorzystać z funkcji w b.cpp - w tym celu zrobiłem sobie plik x.h, w którym jest include a.h i b.h + plików nagłówkowych bibliotek standardowych i tak kombinuję dorzucać dołączanie tego x.h do plików cpp, ale nic mądrego mi z tego nie wychodzi...jaki
Po ostatnich zabawach z phpStorm(niszczy wszystko, tylko drogi ;_;), teraz przyszła kolej na zabawę z #cpp i muszę przyznać, że #qt wraz ze swoim qtCreatorem robią świetną robotę.

Jak ktoś szuka IDE do Cpp to qtCreator bardzo. Szybko, łatwo, miło i przyjemnie. Podpowiada, koloruje składnie(nawet całe bloki wyznacza), współgra z git. No syćko jest.

#programowanie #ide #polecam
źródło: comment_HZaONAEm9PsxvgqOk6n3CneuvkK1u2N2.jpg
#!$%@? idzie dostać od tych crosscompilacji cudzych libów.

/home/wolverine/Development/rusted/Sources/External/OGRE/ogredeps/src/FreeImage/Source/FreeImage/PluginTIFF.cpp:210:23: error: cast from ‘thandle_t {aka void*}’ to ‘long int’ loses precision [-fpermissive]

a w środku:

205 >...// Warning: tiffd is declared as 'int' currently (see libTIFF),.

206 // may result in incorrect file pointers inside libTIFF on.


207 // 64bit machines (sizeof(int) != sizeof(long))..


208 // Needs to be fixed within libTIFF.


209 >...if (tif) {


210 >...>...tif->tif
fd = (long)handle;

211
Mój plan na 2014:

1. #nauka. Zacząć się systematycznie uczyć na #studbaza. Nie #!$%@?ć się (tzn. rzadziej. :P i nie przez pół semestru.)

2. #programowanie. Napisać jakieś sensowne programy i nauczyć się do końca #cpp

3. #silownia . Wrócić na siłownię. Chodzić trzy razy w tygodniu po półtorej godziny. Co daje 234 godziny. Zaokrąglę do 240 i będzie bite 10 dni na siłowni.

4. #dieta. Jeść 5 posiłków
Teraz to już się #!$%@?łem. Deklaracje dwóch wersje tej samej funkcji w dwóch językach:

function(final Token token)
// Java

function(const Token& token)
// C++

Deklaracja konstruktor klasy Token:

Token(char c)
Wywołanie function z tworzeniem Token w locie:

function('x')
// C++

function(new Token('x'))
// Java #!$%@?!!!

Ktoś mi jeszcze powie, że Java jest mniej upierdliwa od C++?

#programowanie #cpp #java
Postanowiłem coś nauczyć się programować z wykorzystaniem socketów. Standardowy program do napisania czat, a przynajmniej mi się tak wydaje. ;)

Zacząłem planować sobie jak się za to zabrać i uświadomiłem sobie że nie mam pojęcia jak stworzyć klienta. Dokładnie nie mogę wymyślić jak napisać część programu która będzie odpowiadała za wyświetlanie i możliwość nadawania wiadomości, precyzując: można otrzymać wiadomość podczas pisania wiadomości do wysłania.

Jakieś pomysły jak to zrobić? Piszę w C.
Teraz dość filozoficzne pytanie z C++ i w ogóle programowania będzie.

Załóżmy, że chcę mieć funkcję, która wykonuje jedną z dwóch operacji w zależności od tego, który z dwóch teoretycznie przeciwstawnych warunków jest spełniony. Jeżeli żaden to niechybnie oznacza, że coś się #!$%@?ło, trzeba zakończyć program i zwrócić informację o błędzie. Napisałem:

void function() {

....if(coś) {

........operacja1();

....} else if(coś_innego) {

........operacja2();

....} else {

........std::unexpected();

....}

}

Kod dobrze spełnia
@Onoki: Kompilator jest w stanie wydedukować (w określonych przypadkach), ƶe if/else if obsługuje wszystkie moƶliwe przypadki.

Przy okazji, nie lepiej rzucić wyjątkiem, niƶ wołać

std::unexpected
? (które jest, nota bene, deprecated)
Dla mediany z 3 wartości nie da się nic wykombinować. Musisz zrobić zawsze 2-3 porównania (w tym co ty napisałeś jest w pesymistycznym wypadku 6 porównań).

if(a
if(b
return b;

else {

if(a
return c;

else

return a;

}

}

else {

if(c
return b;

else {

if(c
return c;

else

return a;

}

}

Zaoszczędzić coś na porównaniach możesz dopiero jak będzie przynajmniej 5 elementów (alg. magicznych piątek).