값 비싼 생성자가있는 클래스가 있다고 가정 해 봅시다. 생성자를 "간단"하기 때문에 생성자를 만들 필요가 없다고합시다. 수업 시간에 저는 typedef를 넣고 싶습니다. 내가 할클래스 내의 typedef
class Expensive {
public:
typedef double data_type;
data_type data[100000][100000];
};
이제 내 호출 코드에서, 경우 :
Expensive::data_type singleValue;
이 Expensive
의 임시 인스턴스를 생성하고 데이터에 대한 모든 공간을 할당하려고한다는 것입니다 모두 함께, 그것은 같이 보입니다 typedef에 액세스하려면?
행운을 스택에 할당합니다. 왜 당신은'data_type 데이터 [100000] [100000]; 쓰지 않는거야? –
질문을 강조하는 것은 고의적 인 예였습니다. Intel 컴파일러를 사용하고 실제로이를 사용하기를 원한다면 어쨌든 모든 배열을 힙에 넣을 플래그가 있습니다. 또는 내 스택을 무제한으로'ulimit'하십시오. – tpg2114
괜찮 았지만 (a) 코드가 좋지 않아서 (b) 대부분의 구성에서 작동하지 않으므로 어리석은 예입니다. –