inflearn logo
강의

講義

知識共有

【C++とUnrealで作るMMORPGゲーム開発シリーズ】Part2:ゲーム数学とDirectX12

デバイス初期化

shared_ptr 과 헤더파일 관련하여 질문있습니다

解決済みの質問

208

hush park

投稿した質問数 46

0

Engin.h 에서

#pragma once

class Engine

{

public:

void Init(const WindowInfo& window);

void Render();

void ResizeWindow(int32 width, int32 height);

private:

WindowInfo _window;

D3D12_VIEWPORT _viewport = {};

D3D12_RECT _scissorRect = {};

shared_ptr<class Device> _device;

shared_ptr<class CommandQueue> _cmdQueue;

shared_ptr<class SwapChain> _swapChain;

shared_ptr<class DescriptorHeap> _descHeap;

};

여기서 #include <memory>를 하지 않고도 shared_ptr이 컴파일이 가능한 이유가 뭔지 알수 있을까요...?

directx 게임수학

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

shared_ptr이 컴파일 가능한 주요 이유는 다른 헤더 파일에서 이미 <memory>를 포함하고 있을 경우입니다. C++에서는 한번 포함된 헤더 파일이 전처리기에 의해 전역적으로 사용 가능해집니다. 따라서, Engine.h를 포함하기 전에 다른 헤더 파일에서 <memory>를 include 했다면, Engine.h 내에서 명시적으로 include하지 않아도 shared_ptr을 사용할 수 있습니다.

단, 이런 방식은 명시적이지 않으므로 혼란을 줄 수 있습니다. 따라서 필요한 헤더는 해당 파일에서 명시적으로 포함하는 것이 좋은 코딩 관례입니다.

복습중에 커맨드 큐 관련 질문이 있습니다.

0

37

1

_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다

0

59

1

#include d3dx12.h 추가했지만 오류

0

82

1

LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.

0

123

1

[DirectXTex LNK2019 에러]

0

245

2

UI 랜더링이 이해가 안되어 질문드립니다

0

176

1

insideTess 값 관련 질문

0

126

1

렌더 타겟을 SRV로 사용하려고 합니다.

0

183

1

C++ 언어 표준과 Engine.lib 오류에 관하여..

0

281

2

실행과정에서의 문제

0

396

3

결과물에 의문이 생겨서 한가지 질문 드립니다

0

147

1

uv좌표변환

0

149

1

Shader 관련 문제

0

223

1

Load 부분에서 문제가 있어 질문드립니다

0

164

1

강의에서 보여진 모습과 다른모양이 되어서 질문드립니다

0

173

1

enumclass 질문입니다

0

155

1

nullptr오류가 발생해요.

0

363

2

Normal Mapping / Assertion failed! 오류

0

221

1

1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.

0

431

2

질문있습니다.

0

177

1

장치 초기화 nullptr이 자꾸 발견 되네요.

0

301

2

용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?

0

254

1

안녕하세요 질문있습니다

0

205

1

DirectX11 강의 질문

0

354

1