Je veux une déclaration qui ne fait rien mais qui peut être utilisée dans des endroits nécessitant une déclaration. Passez: http://docs.python.org/release/2.5.2/ref/pass.html
Edit: Je viens de voir: Comment peut-on exécuter un no-op en C/C++?
#define pass (void)0
Résolu mon problème. Merci!
Le point-virgule ou des crochets vides devraient fonctionner pour vous
Par exemple, Python
while some_condition(): # presumably one that eventually turns false
pass
Pourrait traduire en C++ suivant
while (/* some condition */)
;
Ou
while (/* some condition */) {}
Peut-être que pour le cas d'opérateur ternaire, vous pourriez faire:
x > y ? do_something() : true;
Non, vous n'avez pas pass
ou équivalent mot clé . Mais vous pouvez écrire un code équivalent sans ce mot clé.
def f():
pass
devient
void f() {}
et
class C:
pass
devient
class C {};
Dans un contexte différent, une syntaxe différente pourrait être utile. Par exemple,
class MyError(Exception):
pass
devient
class MyError : public std::exception
{
using std::exception::exception; //inherits constructor!
};
Comme vous pouvez le constater, dans ce contexte, vous devez écrire using
pour hériter des constructeurs de la classe de base. En Python, pass
fait la même chose, dans un contexte similaire.
J'espère que cela pourra aider.
Comme indiqué dans les commentaires, ceci n'est pas supporté car cela n'a aucun sens . L'opérateur conditionnel est conçu pour évaluer l'un des deux opérandes. Deux. Pas une.
Il n’est pas acceptable d’abuser de la part de l’opérateur afin de réaliser une action conditionnelle dans un seul de ces cas. En fait, il est préférable que ni l'un ni l'autre des opérandes n'engendrent d'effets secondaires. Ce n'est pas une construction "faire quelque chose", mais une construction "donnez-moi l'une des deux choses".
À cet égard, si Python prenait en charge ce que vous dites, alors il serait cassé où C++ ne le serait pas. En l'occurrence, Python ne le supporte pas non plus, après tout.
Ecrivez une déclaration if
à la place:
if (x > y) {
do_something();
}
else {
/* Unimplemented at the moment */
}
Je pense qu'en C++, juste une ligne vide (;) sera l'équivalent de 'pass'
Une approche pourrait être: