C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

volatile Methode

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Babak Pourat
Guest





PostPosted: Fri Jan 27, 2006 8:32 pm    Post subject: volatile Methode Reply with quote



Hallo,
ich bin gerade in der MSDN über folgenden satz gestolpert.

"It is an error to pass a const object to a member function that is not
const. Similarly, it is an error to pass a volatile object to a member
function that is not volatile."

Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Gruß

Babak


--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Markus Moll
Guest





PostPosted: Fri Jan 27, 2006 9:37 pm    Post subject: Re: volatile Methode Reply with quote



Hallo

Babak Pourat wrote:

Quote:
Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Ja.

Allerdings hab ich sie bisher noch nicht gebraucht.

Gruß
Markus

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Stefan Reuther
Guest





PostPosted: Fri Jan 27, 2006 10:56 pm    Post subject: Re: volatile Methode Reply with quote



Babak Pourat wrote:
Quote:
Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Ja.

Allerdings wirst du aller Wahrscheinlichkeit mit einem volatilen
C++-Objekt nicht glücklich werden. De facto taugt volatile nur für
eingebaute Datentypen und Aggregate davon. Sobald du ein "echtes" Objekt
verwenden willst, musst du auf einmal alle benötigten Memberfunktionen
volatile machen. Spätestens, wenn du dann zu einen Member vom Typ
'std::string' o.ä. vorgedrungen bist, hast du dann ein Problem, weil der
diese Members nämlich nicht hat. Und Kopieren ist auch nicht, weil es
keinen Kopierkonstruktor gibt, der 'volatile std::string&' nimmt.


Stefan

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Martin Winkler
Guest





PostPosted: Fri Jan 27, 2006 11:37 pm    Post subject: Re: volatile Methode Reply with quote

Babak Pourat wrote:

Quote:
Hallo,
ich bin gerade in der MSDN über folgenden satz gestolpert.

"It is an error to pass a const object to a member function that is not
const. Similarly, it is an error to pass a volatile object to a member
function that is not volatile."

Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Hier geht es um den Unterschied zwischen const- und nicht-const-Methoden.
Auf const-Objekte dürfen nur const-Methoden aufgerufen werden. "Volatile"
Methoden sind die, die nicht als const deklariert sind.

Gruß
Martin

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Babak Pourat
Guest





PostPosted: Sat Jan 28, 2006 1:45 am    Post subject: Re: volatile Methode Reply with quote

Martin Winkler wrote:
Quote:
Babak Pourat wrote:

"It is an error to pass a const object to a member function that is
not const. Similarly, it is an error to pass a volatile object to a
member function that is not volatile."

Hier geht es um den Unterschied zwischen const- und
nicht-const-Methoden. Auf const-Objekte dürfen nur const-Methoden
aufgerufen werden. "Volatile" Methoden sind die, die nicht als const
deklariert sind.

Wenn es wäre ist wie Du es interpretierst, dann wäre es verboten auf
nicht-const-Objekte const-Methoden anzuwenden, aber das ist, soweit ich
weiss, erlaubt.

Babak



--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Falk Tannhäuser
Guest





PostPosted: Sat Jan 28, 2006 2:32 am    Post subject: Re: volatile Methode Reply with quote

Babak Pourat wrote:
Quote:
Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Ja, siehe § 9.3.1/3. Im Typsystem von C++ verhält sich
"volatile" ganz ähnlich wie "const", oft wird in der Norm
daher von "cv-qualifiers" gesprochen (§ 7.1.5.1).

Wie bereits gesagt wurde, wird "volatile" für komplexere
Objekte (insbesondere solche, deren Klassentypen Member-
funktionen besitzen) in der Praxis höchst selten verwendet.
Andrei Alexandrescu hat vor einiger Zeit jedoch mal eine
Anwendung für Multithreading-Programmierung vorgeschlagen
<http://www.cuj.com/documents/s=7998/cujcexp1902alexandr/>,
wobei "volatile" nicht aufgrund seiner üblichen Semantik
(Optimierungen unterbinden) benutzt wird, sondern nur
für Typüberprüfungen zur Übersetzungszeit.

MfG
Falk

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Thomas Maeder
Guest





PostPosted: Sat Jan 28, 2006 2:48 am    Post subject: Re: volatile Methode Reply with quote

Martin Winkler <martin_winkler (AT) gmx (DOT) de> writes:

Quote:
Hier geht es um den Unterschied zwischen const- und nicht-const-Methoden.
Auf const-Objekte dürfen nur const-Methoden aufgerufen werden. "Volatile"
Methoden sind die, die nicht als const deklariert sind.

Nein. Volatile Methoden, sind die, die volatile deklariert sind.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Rolf Magnus
Guest





PostPosted: Sat Jan 28, 2006 2:48 am    Post subject: Re: volatile Methode Reply with quote

Falk Tannhäuser wrote:

Quote:
Babak Pourat wrote:
Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Ja, siehe § 9.3.1/3. Im Typsystem von C++ verhält sich
"volatile" ganz ähnlich wie "const", oft wird in der Norm
daher von "cv-qualifiers" gesprochen (§ 7.1.5.1).

Wie bereits gesagt wurde, wird "volatile" für komplexere
Objekte (insbesondere solche, deren Klassentypen Member-
funktionen besitzen) in der Praxis höchst selten verwendet.

Ich habe es mal gebraucht. Es ging dabei um einen FIFO für einen
Mikrocontroller, der manchmal auch in Interrupt-Routinen verwendet wird.
Ohne volatile werden die Zugriffe auf die Queue teilweise wegoptimiert.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Ernst Murnleitner
Guest





PostPosted: Sat Jan 28, 2006 6:35 pm    Post subject: Re: volatile Methode Reply with quote

Quote:
Auf const-Objekte dürfen nur const-Methoden
aufgerufen werden. "Volatile" Methoden sind die, die nicht als const
deklariert sind.


Wenn es wäre ist wie Du es interpretierst, dann wäre es verboten auf
nicht-const-Objekte const-Methoden anzuwenden, aber das ist, soweit ich
weiss, erlaubt.


Das hat er aber nicht so geschrieben: wenn für const Objekte nur const
Methoden verwendet werden dürfen, dann heisst das ja noch nicht, dass
auf nicht-const Objekte keine const Methoden erlaubt sind.

Ernst

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Markus Moll
Guest





PostPosted: Sat Jan 28, 2006 7:00 pm    Post subject: Re: volatile Methode Reply with quote

Hallo

Ernst Murnleitner wrote:

Quote:
Das hat er aber nicht so geschrieben: wenn für const Objekte nur const
Methoden verwendet werden dürfen, dann heisst das ja noch nicht, dass
auf nicht-const Objekte keine const Methoden erlaubt sind.

Der vom OP zitierte Text würde dann aber genau das aussagen.

Gruß
Markus

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
kanze
Guest





PostPosted: Mon Jan 30, 2006 1:01 pm    Post subject: Re: volatile Methode Reply with quote

Rolf Magnus wrote:
Quote:
Falk Tannhäuser wrote:

Babak Pourat wrote:
Mir ist noch in keinem Buch eine volatile Methode begegnet.
Findet sie sich in der C++-Norm?

Ja, siehe § 9.3.1/3. Im Typsystem von C++ verhält sich
"volatile" ganz ähnlich wie "const", oft wird in der Norm
daher von "cv-qualifiers" gesprochen (§ 7.1.5.1).

Wie bereits gesagt wurde, wird "volatile" für komplexere
Objekte (insbesondere solche, deren Klassentypen Member-
funktionen besitzen) in der Praxis höchst selten verwendet.

Ich habe es mal gebraucht. Es ging dabei um einen FIFO für
einen Mikrocontroller, der manchmal auch in Interrupt-Routinen
verwendet wird. Ohne volatile werden die Zugriffe auf die
Queue teilweise wegoptimiert.

Es hängt vom Anwendungsbereich ab. Unter Windows oder Unix hat
volatile praktisch keine Bedeutung, außer auf einem
sig_atomic_t. Auf Mikrocontroller dagegen wohl. Immerhin frage
ich mich, ob der "volatile" auf dem Objekt gehört, oder auf den
Mitgliedern des Objektes.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.