Skip to content

[Fix] 일반함수를 클래스함수로 변경하고싶음(클래스의 상호참조문제 때문에 해결하기 어려움) #20

@exgs

Description

@exgs

문제점

int parsingServerBlock(std::vector<std::string> &gnl, Config &default_location, int start, int end, ServerBracket &ServerBracket);
int parsingLocationBlock(std::vector<std::string> &gnl, Config &default_location, int start, int end);
int isCorrespondedServerDirective(int index, ServerBracket &ServerBracket);

int SetServer(Server &servers, std::vector<std::string> &gnl);

일반함수로 구현된 함수들을 클래스 함수로 들어가도록 하고싶으나, 클래스를 서로 상호참조 하는 문제 때문에 쉽게 해결되지 않음

예상되는(제대로 된) 동작

  1. SetServer() 함수는 Server클래스의 멤버함수로
  2. parsingServerBlock(), parsingLocationBlock(), isCorrespondedServerDirective() 는 Config 클래스의 멤버함수로 가야함.
    Comment Anchor로 표기해두었음

해결 방법(optional)
헤더의 상호참조를 해결 할 수 있는 방법을 찾아본다. (단순히 전방선언으로는 해결되지않는 것을 확인함.)

버그 재현 방법(버그를 발생시키는 방법)
ServerConfigIdx.cpp, ServerConfigIdx.hpp 에 정의된 해당 함수를 주석처리하고, 위에서 언급된 클래스에 함수를 넣어서 시도 해볼 수 있다.

Metadata

Metadata

Assignees

Labels

ICEBOXbugSomething isn't workingwontfixThis will not be worked on

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions