Bonjour à tous,

Je code en C++ depuis quelques mois. Je suis en train de coder des fichiers tests (en utilisant google test) dans le cadre d'un projet, et je rencontre un problème que je n'arrive pas à résoudre.

Voici un code ressemblant dans les grandes lignes à celui qui me pose problème, simplement pour avoir une idée de ce qui est implémenté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#include <gtest/gtest.h>
#include <iostream>
#include <vector>
 
namespace n{
   std::vector<double> numbers;
 
   for (size_t i(0); i<100;++i){
     numbers.push_back(i);
   }
 
   [...]
 
}
 
TEST(MyClass,sum){
[...]
}
 
TEST(MyClass,average){
[...]
}
Cependant, numbers n'est pas reconnu comme étant un vector, et lors de la compilation, j'ai l'erreur suivante qui apparaît : " unknown type name 'numbers' " m'indiquant la ligne de déclaration du tableau dans le namespace.
J'ai ajouté la ligne suivante pour tenter de voir l'origine du problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
std::cout<<"entered in namespace"<<std::endl;
Et là l'erreur suivante apparaît : "no type named 'cout' in namespace 'std' "
Pourtant, j'utilise la librairie standard dans presque tous mes autres fichiers, et ça fonctionne très bien. Mais là, si je l'utilise dans le namespace créé, ce problème apparaît. De plus, j'utilise à chaque fois les mêmes options de compilation, et ce problème n'apparaît avec aucun autre fichier.
Auriez-vous une idée du problème ?

Merci pour votre aide