Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[4848] [질문] transform 사용에 대해서.
진수.네모 [miman101] 1202 읽음    2004-12-23 18:19
vector<string> vStr, vBox;

vStr에는 문장들이 들어있습니다. 이들 문장의 앞뒤로 * 를 추가하여 vBox에 "* 문장 * " 을 넣으려고 합니다.

class addBox : public binary_function < string, int ,string>
{
public :
             string operator()(string str,int nMaxLen) {
                           str = "* " + str + string(nMaxLen - str.size(),' ') + " *";
                           return str;
             }
};

void BlackBox::makeBox()
{
             int nMaxLen;
             vector<string>::const_iterator vItr;
             vItr = max_element(vStr.begin(),vStr.end(),lengthless);

             nMaxLen = (*vItr).size();
             string first(nMaxLen+4,'*');

             string second = "* " + string(nMaxLen,' ') + " *";
             vBox.reserve(vStr.size());
             transform(vStr.begin(),vStr.end(),vBox.begin(),bind2nd(addBox(),nMaxLen)); 
}            

이처럼 했으나 warning 이 뜨고 있습니다. 무슨 경고인지 잘 모르겠고 이점에 대해 알고 싶습니다.

Warning W8037 C:\Borland\BCC55\include\function.h 330: Non-const function addBox::operator ()(string,int) called for const object in function binder2nd<addBox>::operator ()(const string &) const

또, 위 소스가 잘못되있다면 지적해주세요.

두시간 동안 해결해 볼려고 책을 뒤적이며 검색해보고 해보며 여기 까지 왔네요... 첨엔 에러 투성이었는데 경고 수준으로 흑 감격..

bind2nd 는 무조건 두개의 인자중 한개를 고정 시킨다는 정도만 알고 사용했는데 에러가 왕창...

검색하다보니... bind2nd 는 이항함수 객체.. binary_function 을 이용한 것에 대해서 동작을 하는거 같더군요... 맞나요?

addBox가 두개의 인자를 가지는 함수는 안되는 건가요?

transform 구문이 제대로 동작하지 않네요 vBox 에 정보가 들어오지 않네요... 잘못 사용했다는 것인데
어떻게 사용해야 하는지....

+ -

관련 글 리스트
4848 [질문] transform 사용에 대해서. 진수.네모 1202 2004/12/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.