| 
							AIV
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 11-08-2004 07:05 »   | 
								
								 | 
							  
							 
							Подскажите пожалуйста можно ли определить параметр шаблона класс или простой тип? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Pu
							
								Большой босс 
								
								 
								  Offline
								
								78
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 11-08-2004 07:17 »   | 
								
								 | 
							  
							 
							AIV,  вообще то, как я понимаю, в С++ класс или простой тип - то и то является типами, один встроенный, другой пользовательский. Разница между ними весьма условна и компилятору пофиг, пользователь определил тип иль он уже встроен. Те разницы нет, я так понимаю данный вопрос. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать. (с) Артур Джонс 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							AIV
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 11-08-2004 07:22 »   | 
								
								 | 
							  
							 
							Проблема следующая:   я malloc'ом распределяю память под переменную типа T и мне надо если это класс вызвать конструктор класса. Соответсвенно для простых типов конструкторов нет.... и для того чтобы определить вызывать конструктор или нет надо знать тип Т  класс или нет. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Pu
							
								Большой босс 
								
								 
								  Offline
								
								78
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 11-08-2004 07:28 »   | 
								
								 | 
							  
							 
							AIV, ошибаешься стандартные типы также имеют конструкторы   следующие записи эквивалентны: int i = 2; int i(2);  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать. (с) Артур Джонс 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							AIV
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 11-08-2004 07:48 »   | 
								
								 | 
							  
							 
							Очень биг спасибо за науку!!!!    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Pu
							
								Большой босс 
								
								 
								  Offline
								
								78
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 11-08-2004 07:52 »   | 
								
								 | 
							  
							 
							AIV, у големов нет проблемов . Заходи.    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать. (с) Артур Джонс 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Serega
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 11-08-2004 08:25 »   | 
								
								 | 
							  
							 
							Также можно использовать type_traits 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Pu
							
								Большой босс 
								
								 
								  Offline
								
								78
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 11-08-2004 08:59 »   | 
								
								 | 
							  
							 
							Serega,  Можно чуть поподробнее? плизз!     
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать. (с) Артур Джонс 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							npak
							
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 11-08-2004 11:14 »   | 
								
								 | 
							  
							 
							AIV, рисковый парень, malloc'ом пользоваться для объектов.  Можно получить по башке, если компилятор что-нить к объекту цепляет.
  Почему бы не пользоваться 'new'? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Антон (LogRus)
							
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 12-08-2004 13:59 »   | 
								
								 | 
							  
							 
							а пробовал? allocator<T>::constract uninitialized_fill raw_storage_iterators
  читай советы 10-11 в книге "Эффекстивное использование STL" (Effective STL) 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Странно всё это.... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Антон (LogRus)
							
						 | 
						
							
								  | 
								
									
									«  Ответ #10 : 14-08-2004 07:24 »    | 
								
								 | 
							  
							 
							new может получать адрес уже выделеной под объект памяти и создавать в её объеме структуры объекта также вызывая конструктор. void *ptr = malloc(sizeof(sometype));
  sometype *vptr = new (ptr) sometype;
  ......................
  vptr->~sometype(); free(ptr);
 
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 30-11-2007 22:17 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Странно всё это.... 
						 | 
					 
				 
			 |  
		 
	 | 
	 |