# C++ sleep’ was not declared in this scope ?

**URL:** <https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 1:05 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476 "2016-02-21T13:05:55Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 1:05 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/1 "2016-02-21T13:05:55Z")

</div>

hello  
tout est dans le titre sauf le code que voici

```auto
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;
	sleep(1);
    return 0;
}
```

bon je viens d’installer la wheezy alors je me doute qu’il manquerai un paquet: j’ai mi la liste dans un fichier ci joins,  
qui a été fournis par dpkg -l  
sa devrai en dire long 😕

je code avec code block 10.05 note que c’est installer en local et pas celui fourni par le gestionnaire de paquet le souci ce situe peux etre a ce niveau mai c’est peux probable:  
j’ai essayer avec un simple makefile:

```auto
$ make
c++ -Wall -Wextra -pedantic -c -o main.o main.cpp
main.cpp: In function ‘int main()’:
main.cpp:8:9: error: ‘sleep’ was not declared in this scope
make: *** [main.o] Erreur 1
```

je suis peut etre fatiguer m’enfin la je pense plutôt a un bug de g++ :\

note: ma signature n’est plus a jours  
[paquet.txt](https://www.debian-fr.org/uploads/default/original/2X/8/806b33cb41272f1f2b7df8890b10506b0eb47438.txt) (182 KB)

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 1:05 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/2 "2016-02-21T13:05:55Z")

</div>

[quote=«&nbsp;man 3 sleep&nbsp;»]SYNOPSIS  
#include \<unistd.h\>  
unsigned int sleep(unsigned int seconds);[/quote]  
😉

> [@panthere](#):
>
> je suis peut etre fatiguer

Très fatigué en effet, pour oublier que «&nbsp;not declared in this scope&nbsp;» se résout généralement grâce au bon #include ! ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 1:05 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/3 "2016-02-21T13:05:57Z")

</div>

Curieux dans mes programme j’avais jamais besoins d’insérer ce fichier ?  
il y a une résont particulière pour que cela soie devenu obligatoire ?

> [@](#):
>
> rès fatigué en effet, pour oublier que «&nbsp;not declared in this scope&nbsp;» se résout généralement grâce au bon #include

Merci pour l’info je l’ignorais ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think") ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")  
Merci pour ta réponse ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 1:05 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/4 "2016-02-21T13:05:57Z")

</div>

[quote=“panthere”]Curieux dans mes programme j’avais jamais besoins d’insérer ce fichier ?  
il y a une résont particulière pour que cela soie devenu obligatoire ?[/quote]  
Tu incluais un fichier qui incluait unistd.h. C’est l’un des défaut du système d’inclusion par rapport à des import qu’on trouve ailleurs, je trouve. Tu as une mauvaise visibilité de tes dépendances.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/5 "2016-02-21T13:06:10Z")

</div>

c’est donc juste pour connaître les dépendance. oki c est noter 🙂

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/6 "2016-02-21T13:06:17Z")

</div>

> [@MisterFreez](#):
>
> C’est l’un des défaut du système d’inclusion par rapport à des import qu’on trouve ailleurs, je trouve. Tu as une mauvaise visibilité de tes dépendances.

D’un autre côté ça peut aussi être vu comme un avantage. 😉  
Exemple : foo utilise systématiquement bar dans sa partie publique. Si baz utilise foo (et donc bar aussi) pourquoi le forcer à importer les deux ?

Mais bon, on retombe sur un dilemme classique : verbosité et précision, contre concision et flou artistique. Je ne pense pas qu’il y ait de bonne ou de mauvaise solution, juste des choix arbitraires par les concepteurs du langage.  
Perso je préfère la concision quitte à devoir jongler un peu avec le flou artistique qu’elle entraîne, mais ça dépend aussi du caractère de chacun. 🙂

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/c-sleep-was-not-declared-in-this-scope/54476/7 "2016-02-21T13:06:18Z")

</div>

Ça n’est pas vraiment comme ça. Avec des imports, tu récupère tout ce que tu utilise et uniquement ça. Si une bibliothèque possède une classe X, il n’y a pas besoin de technique particulière pour qu’elle ne soit pas utilisée par mégarde par l’utilisateur. Pour moi c’est un problème d’accessibilité et plus j’ai de contrôle sur la visibilité de mes données et classe mieux je me porte. C’est ce qui me plaît dans OSGI on contrôle précisément tout ce qui est accessible à l’extérieur du bundle. Ça demande un runtime plus lourd souvent, mais les performances ne sont pas toujours la priorité face à la fiabilité ou la maintenabilité.
