Orario: 19-05-2013, 23:45 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Writing modern C++ code
Autore Messaggio
TheCrib
Indie Pellerossa

Messaggi: 5,175
Registrato: Sep 2010
Offline Offline
#31 RE: Writing modern C++ code
0
(24-09-2011 12:52)MannyB ha scritto:  per quanto riguarda C++11 e game development, ancora su console non si usa neanche STL per motivi di performance, quindi mi chiedo quando questa roba diventera' effettivamente usabile. Magari mai o magari lo e' gia', non ho provato, qualcuno si e' gia' sporcato le mani?

Il fatto che ci sia ad esempio il concetto di "move" apre gia' le porte per costruire dei propri container che sono smart-pointer-safe, anche se non si usano le STL direttamente (come in realta' faccio anche io per ora).

(24-09-2011 12:59)kunos ha scritto:  questo e' quando mi devono venire a prendere gli infermieri dopo un crash in cui non mi viene fuori il call stack e che finisce per essere colpa di una variabile non inizializzata:

..avro' incubi per giorni ! (mesi ?)

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 24-09-2011 13:06 da TheCrib.)
24-09-2011 13:04
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,877
Registrato: Nov 2008
Online Online
#32 RE: Writing modern C++ code
0
Me lo sono visto tutto, C++11 è tantissima roba Fermose

Diciamo che è tutta roba che è poco utile nel codice di basso livello dell'engine, che in pratica è "C con le funzioni"... ma diventa veramente utile nel codice di gameplay e in tutto quello che è complesso e convoluto Sorriso

-auto: bellobello. Non vedo perchè usare qualcos'altro Asd
-lambdas: saranno spammate come se non ci fosse un domani, in pratica sono puntatori a funzione fatti bene! Ogni oggetto potrebbe definire la propria logica tramite collezioni di lambdas chiamate dagli eventi di gioco Fermose

Codice:
State* s = new State();
s->event( EV_BEGIN, []()
{
    :::
} );

s->event( EV_UPDATE, []( float dt )
{
    :::
} );

s->event( EV_END, []()
{
    :::
} );

s->event( EV_COLLISION, []( Object* collided, const Vector& normal, float impulse )
{

} );

gameobject.setState( s );

Quindi ogni oggetto avrebbe una collezione di stati possibili e uno stato corrente che risponde agli eventi esterni che arrivano mentre è attivo.
Che poi è quello che faccio già ma con un callback per evento e una sfilza di if/else interminabile per determinare lo stato Asd

-UTF16 Strings e string literals. Così potrò lanciare nel secchio la classe String che ho dovuto mettere a malincuore perchè il supporto UTF16 di basic_string fa cagare.

-vector<> migliorato e array<>: potrò pensionare il mio buon Dojo::Array dopo anni di onorata carriera, se i benchmark danno ragione a Sutter.

Ora rimane da capire quanto ci metterà C++11 a essere supportato su MSVC, GCC e Clang... mi sa che ce ne vorrà ancora.

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 24-09-2011 14:10 da _tommo_.)
24-09-2011 14:04
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,362
Registrato: Oct 2010
Offline Offline
#33 RE: Writing modern C++ code
0
(24-09-2011 14:04)_tommo_ ha scritto:  Me lo sono visto tutto, C++11 è tantissima roba Fermose

Diciamo che è tutta roba che è poco utile nel codice di basso livello dell'engine, che in pratica è "C con le funzioni"... ma diventa veramente utile nel codice di gameplay e in tutto quello che è complesso e convoluto Sorriso

-auto: bellobello. Non vedo perchè usare qualcos'altro Asd
-lambdas: saranno spammate come se non ci fosse un domani, in pratica sono puntatori a funzione fatti bene! Ogni oggetto potrebbe definire la propria logica tramite collezioni di lambdas chiamate dagli eventi di gioco Fermose

Codice:
State* s = new State();
s->event( EV_BEGIN, []()
{
    :::
} );

s->event( EV_UPDATE, []( float dt )
{
    :::
} );

s->event( EV_END, []()
{
    :::
} );

s->event( EV_COLLISION, []( Object* collided, const Vector& normal, float impulse )
{

} );

gameobject.setState( s );

Quindi ogni oggetto avrebbe una collezione di stati possibili e uno stato corrente che risponde agli eventi esterni che arrivano mentre è attivo.
Che poi è quello che faccio già ma con un callback per evento e una sfilza di if/else interminabile per determinare lo stato Asd

-UTF16 Strings e string literals. Così potrò lanciare nel secchio la classe String che ho dovuto mettere a malincuore perchè il supporto UTF16 di basic_string fa cagare.

-vector<> migliorato e array<>: potrò pensionare il mio buon Dojo::Array dopo anni di onorata carriera, se i benchmark danno ragione a Sutter.

Ora rimane da capire quanto ci metterà C++11 a essere supportato su MSVC, GCC e Clang... mi sa che ce ne vorrà ancora.

non vorrei dire cavolate ma MSVC già le supporta:
http://msdn.microsoft.com/en-us/library/dd293608.aspx

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 24-09-2011 14:19 da Gabriele.)
24-09-2011 14:18
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,877
Registrato: Nov 2008
Online Online
#34 RE: Writing modern C++ code
0
Beh, intendevo quanto ci metterà a essere supportato completamente su tutti e 3... e sicuramente ce ne vorrà Asd
Facendo qualche prova si, MSVC supporta le lambda e un sacco di roba nella versione 11, Clang più o meno si ferma alle auto, GCC ho capito che supporta tutto male.
Di certo niente di usabile oltre la sperimentazione.

EDIT: Ah, la tabella per domarle tutte!
C++0x compiler support table

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 24-09-2011 14:28 da _tommo_.)
24-09-2011 14:27
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
hurricane86
Posting Freak

Messaggi: 1,266
Registrato: Jun 2009
Offline Offline
#35 RE: Writing modern C++ code
0
sembrerebbe che da vs10 a vs11 non cambi molto come supporto al c++11:
http://blogs.msdn.com/b/vcblog/archive/2...09291.aspx

Martino Giovanelli
24-09-2011 14:33
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,877
Registrato: Nov 2008
Online Online
#36 RE: Writing modern C++ code
0
(24-09-2011 14:33)hurricane86 ha scritto:  sembrerebbe che da vs10 a vs11 non cambi molto come supporto al c++11:
http://blogs.msdn.com/b/vcblog/archive/2...09291.aspx

Già Fermofumo
La situazione non è affatto chiara, comunque Asd
Sutter disse che uscirà il supporto completo dopo VC11 ma prima di VC12. Vediamo.

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
24-09-2011 14:36
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Corralx
Graph Lover

Messaggi: 810
Registrato: Jul 2010
Offline Offline
#37 RE: Writing modern C++ code
0
(24-09-2011 14:36)_tommo_ ha scritto:  
(24-09-2011 14:33)hurricane86 ha scritto:  sembrerebbe che da vs10 a vs11 non cambi molto come supporto al c++11:
http://blogs.msdn.com/b/vcblog/archive/2...09291.aspx

Già Fermofumo
La situazione non è affatto chiara, comunque Asd
Sutter disse che uscirà il supporto completo dopo VC11 ma prima di VC12. Vediamo.

Secondo me non han ben chiaro cosa stan facendo.
Non hanno il supporto ai variadic templates (che clang e gcc hanno da tempo e che sono la feature forse più importante di C++11 su cui anche la libreria standard si basa) ma hanno costruito un accrocchio mortale con le macro per fartela usare comunque.
Probabilmente stavano di meno a completare il supporto.
Cioè io per usare la libreria standard nuova devo definire una macro che definisce il numero di argomenti massimo che i miei template andranno ad usare (perchè dovrei saperlo per altro), così il compilatore può generare tutto il necessario?
Non voglio nemmeno sapere come gli è venuta in mente una porcata simile Fermofumo

Matteo "Corralx" Bertello
24-09-2011 14:42
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,877
Registrato: Nov 2008
Online Online
#38 RE: Writing modern C++ code
0
Sutter parlava nelle presentazioni di una "trappola" in cui sono caduti e che gli ha causato la cancellazione di moltissimo lavoro, probabilmente parlava proprio di quello.
Che cime alla MS comunque Asd

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
24-09-2011 14:51
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Revan1985
Fancazzista indie

Messaggi: 406
Registrato: Nov 2008
Offline Offline
#39 RE: Writing modern C++ code
0
(24-09-2011 14:51)_tommo_ ha scritto:  Sutter parlava nelle presentazioni di una "trappola" in cui sono caduti e che gli ha causato la cancellazione di moltissimo lavoro, probabilmente parlava proprio di quello.
Che cime alla MS comunque Asd

dovrebbero lasciar perdere il c++ e pensare solo a .net li dentro Asd

Galli Davide Francesco Maria

No man is an island, Entire of itself.
Each is a piece of the continent, A part of the main.
If a clod be washed away by the sea, Europe is the less.
As well as if a promontory were.
As well as if a manor of thine own Or of thine friend's were.
Each man's death diminishes me, For I am involved in mankind.
Therefore, send not to know For whom the bell tolls,
It tolls for thee.

john donne "for whom the bell tolls"
24-09-2011 15:14
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: