PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > comp.lang.cplus > C++ side effects
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
C++ side effects

Réponse
 
LinkBack Outils de la discussion
Vieux 08/04/2008, 11h42   #1
baibaichen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut C++ side effects

hi All

the following comes from c++ standards:

"Accessing an object designated by a volatile lvalue (3.10), modifying
an object, calling a library I/O
function, or calling a function that does any of those operations are
all side effects, which are changes in the
state of the execution environment."

According to this definition, consider this function,

T ReturnT(){
T result_;
//do something
return result_; // #1
}

At #1, I think
1) if T is scalre type such as int or char, the returning sentence
would not have side effects
2) if T is a class type, does returning type T have side effects? and
Why? I.e. which program state is changed in the T's copy constrcutor.

Thanks
Chang
  Réponse avec citation
Vieux 08/04/2008, 16h16   #2
Abhishek Padmanabh
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: C++ side effects

On Apr 8, 3:42pm, baibaichen <baibaic...@gmail.com> wrote:
> the following comes from c++ standards:
>
> "Accessing an object designated by a volatile lvalue (3.10), modifying
> an object, calling a library I/O
> function, or calling a function that does any of those operations are
> all side effects, which are changes in the
> state of the execution environment."
>
> According to this definition, consider this function,
>
> T ReturnT(){
> T result_;
> //do something
> return result_; // #1
>
> }
>
> At #1, I think
> 1) if T is scalre type such as int or char, the returning sentence
> would not have side effects
> 2) if T is a class type, does returning type T have side effects? and
> Why? I.e. which program state is changed in the T's copy constrcutor.


Could be anything depending upon what's written in the copy
constructor for the specific type T. No? For example, even a simple
print to console or writing something to a log file (both I/O related)
could be considered a side-effect. Copies as in above can be elided
via RVO/NRVO alongwith those side-effects.
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 06h37.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,11875 seconds with 10 queries