그래서 SFML과 Boost 라이브러리를 사용하여 ResourceManager 클래스를 작성하려고합니다. 나는 자원을 포함하기 위해 std :: map을 사용하고있다. 나는 최근에 std :: unique_ptr이 메모리 정리 (또는 그 라인을 따르는 무언가) 때문에 정말 좋다고 들었다. 이 제는 ResourceManager 클래스는 모습입니다std :: unique_ptr std :: map 내부에 배치하는 동안 오류가 발생 했습니까?
: 여기
#pragma once
#include <boost/Any.hpp>
#include <map>
#include <memory>
#include <SFML/Graphics.hpp>
#include "Resource.h"
class ResourceManager
{
public:
ResourceManager();
void clear();
void dump();
boost::any getResource(std::string s);
sf::Texture loadTexture(std::string s, sf::IntRect d);
void unloadTexture(std::string s);
private:
std::map<std::string, std::unique_ptr<boost::any>> resource;
};
내가 내지도에 객체를로드하는 데 사용할 노력하고있어 방법이
sf::Texture ResourceManager::loadTexture(std::string s, sf::IntRect d)
{
std::unique_ptr<sf::Texture> t;
if (!t->loadFromFile(s, d))
std::cout << "Error loading resource: " << s << std::endl;
resource[s] = t;
}
한숨, 나는 내가 어떻게 unique_ptr을 사용하고 있었는지 지진이 있다고 생각했다. 내가 따라야 할 정확한 가이드가 없지만 내 게시물을 업데이트하여 내 문제를 설명하는 업데이트를하겠습니다. <3 – Honor
아니요, 몇 분만 기다려주세요. 당신이하는 방식이 아닙니다. 동적 메모리 할당이 없다면, 'unique_ptr'은 의미가 없습니다. 또한 실제 사용 사례를 찾을 때'std :: make_unique'를 살펴보십시오. 어쩌면 * 당신이 현재하고있는 일보다는 * 당신이하고 싶은 일을 설명해야 할 것입니다. –
음, 추측에 의한 프로그래밍이 작동하지 않습니다. 그리고 "지체 된"것과 같은 혐오스럽고 불명예스러운 용어를 사용하지 않겠습니까? –