Bonjour,

je souhaite ecrire une classe contenant un tableau boost(multiarray) susceptible d'etre redimensionné lors de l'utilisation dudit l'objet.

voici mon code :
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
24
25
26
27
28
29
30
31
32
33
34
35
typedef boost::multi_array<int, 2> array_type;
typedef array_type::index index;
 
array_type::extent_gen extents;
 
 
class Truc {
public:
    Truc ( unsigned int num_elements ) : A( boost::extents[ num_elements ][10] )
    {
		redimensionner();
    }
 
	boost::multi_array<double,2> A;
	//int m_n;
    //
	array_type::extent_gen extents;
 
	void redimensionner(){
		A[1][1]=12;
		A.resize( extents[4][3] );
	}
 
 };
 
int main()
{
    Truc objet1(100);
    objet1.A[7][5] = 18;
    std::cout << "objet1.A[7][5] = " << objet1.A[7][5] << std::endl;
	std::cout << "objet1.A[1][1] = " << objet1.A[1][1] << std::endl;
 
	system("pause");
    return 0;
}
En fait, le programme plante sans donner d'explication dans la fenetre de debogage. Il y a seulement une console qui s'ouvre avec


Debug Error!
Program: a\Deskop\Projects...

R6010 has been called
(Press Retry to debug the application)

et si je fais retry, je tombe sur :

essai_C++.exe has triggered a breakpoint

et le fichier ouvre sur : crt0msg.c situé dans


C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src

je bute, mais si qqn a une solution, je suis preneur!


Merci par avance,
Olivier