Erreurs, bugs, questions - page 1767

 
Mes amis, ne pouvez-vous pas modifier le terminal pour l'échange ? Qu'est-ce qui se passe chez Otkritie Broker ? Le testeur reproduit des valeurs d'équité incroyables pour les actions et les positions d'actions fermées accrochées dans le terminal. Je n'ai pas fait d'échanges depuis longtemps mais j'ai décidé de le faire et la puanteur est incroyable. Est-ce que vous testez au moins votre œuvre d'art avant de la donner aux gens ?)
 

Ça ne marche pas :

#define AZ(R)  "df" #R
string s = AZ(rty);
 
pavlick_:

Ça ne marche pas :

#define AZ(R)  "df" #R
string s = AZ(rty);
Et ça ne devrait pas. Ajoutez un signe plus.
 
fxsaber:
Et ça ne devrait pas. Ajoutez un signe plus.

En C/C++, il devrait. De plus, en µl, cela fonctionne comme suit :

string s = "sdd" "trt";
par une macro ne veut pas, bien que ce soit essentiellement la même chose.
 
pavlick_:

En C/C++, il devrait. De plus, en µl, cela fonctionne comme suit :

string s = "sdd" "trt";
Il ne s'agit pas d'utiliser des macros, bien que ce soit la même chose par essence.

Quel est l'intérêt d'une telle entrée - sans le plus ? Commodité ? - douteux.

Personne ne l'écrit de cette façon.

int i = 1 2; // типа 3
Ou nous faisons la norme pour le plaisir de la norme. Y penser n'est pas notre truc.
 
fxsaber:

Quel est l'objectif d'une telle entrée - sans le signe plus ? Commodité ? - douteux.

Personne n'écrit comme ça

int i = 1 2; // типа 3
Ou nous suivons la norme pour le plaisir de la norme. Ce n'est pas à nous d'y penser.
Ne serait-ce que parce qu'avec l'opérateur +, on obtient une opération au moment de l'exécution et non de la compilation.
 
pavlick_:
Si seulement parce qu'avec l'opérateur + vous obtenez une opération d'exécution au lieu d'une opération de compilation.
Ce n'est possible que dans un compilateur débile. Vous le comprenez vous-même.
 

Bonjour à tous !

Question pour nos estimés développeurs et experts.


J'ai cherché sur le forum, mais je n'ai pas trouvé de réponse.

Est-il impossible de modifier les valeurs des variables dans la fenêtre d'observation des expressions pendant le débogage ?

Vous ne pouvez faire que des calculs, c'est tout ?

Je suis très reconnaissant pour une réponse.

 
Northwest:

Bonjour à tous !

Une question pour nos estimés développeurs et experts.


J'ai cherché sur le forum, mais je n'ai pas trouvé de réponse.

Est-il impossible de modifier les valeurs des variables dans la fenêtre d'observation des expressions pendant le débogage ?

Vous ne pouvez faire que des calculs, c'est tout ?

Je suis très reconnaissant pour une réponse.

Pour l'instant, vous ne pouvez pas modifier les valeurs des variables - seulement les calculer.
 
fxsaber:
Cela n'est possible que dans un compilateur débile. Vous le savez vous-même.
Le compilateur C++ ne le fera pas pour vous.
#include <iostream>
using namespace std;
struct S
{
    S operator +(const S&) {cout << "operator +\n"; return S{};}
};
S operator ""_s(const char*, size_t) {cout << "literal operator\n"; return S{};}
int main()
{
    cout << "___literal concatenation example___\n";
    S s = "sd"_s "sf"_s;
    cout << "___operator+ example___\n";
    S s2 = "sd"_s + "sf"_s;
}
Le résultat :
____ Exemple de concaténation littérale___.
opérateur littéral
___opérateur+ exemple___
opérateur littéral
opérateur littéral

opérateur +

Comme vous pouvez le constater, l'opérateur+ n'a pas été remplacé par la concaténation dans le deuxième cas (créé pour le littéral avec ajout ultérieur en cours d'exécution). Le compilateur ne peut tout simplement pas le supprimer car le programmeur a trop de possibilités, ce qui limite considérablement la portée de l'optimisation. Ce n'est pas MKL, bien sûr, cela peut être différent, mais l'affirmation même : "un compilateur normal fera tout pour moi" est fausse.