int t[] = { (W<I>()(), 1)... };
이렇게하면 W<I>()() 실행되는건 알겠는데
3번 반복하게 했으면
int t[] = { (W<0>()(), 1), (W<1>()(), 1), (W<2>()(), 1) }
이런식이잖아요?
(W<I>()(), 1) 이거가 int로 취급되는건가요?? 디버깅 찍어보는데 조사식이 안나오네요 음 ..
int t[] = { (W<I>()(), 1)... };
이렇게하면 W<I>()() 실행되는건 알겠는데
3번 반복하게 했으면
int t[] = { (W<0>()(), 1), (W<1>()(), 1), (W<2>()(), 1) }
이런식이잖아요?
(W<I>()(), 1) 이거가 int로 취급되는건가요?? 디버깅 찍어보는데 조사식이 안나오네요 음 ..
W()()로 사이드이펙트 만들고 표현식의 결과는 ,뒤에 값 1
함수형들이 디버깅 하기는 엄청 불편 ㅇㅇ
ㅇㅎ 1로 저장되는군요 무언가 실행시키고 값을 넣을때 사용하는 방식인가 c++ 괄호의 기본적인 리턴값은 마지막값이어서 이렇게 사용하는건가요?
아녀 콤마 오퍼레이터를 괄호로 묶은거에요
절차언어에서 함수형 따라할때쓰는 꼼수? 느낌 JS로 코딩하면 쓸일 많아요
ㅇㅎ 콤마가.... 오퍼레이터 였군요. 앞에꺼를 실행시키고 뒤에꺼를 반환하는 감사합니다.
혹시 근데 함수만 실행시키고 싶은거면 W<I>()()... 이거만 해주면 되는데 int t[] = { W<I>()()... }; 이렇게는 실행되고 W<I>()()...는 기본생성자가 없다고 컴파일 에러뜨는데
...이 아마 I들을 ,로 바꿔주게끔 언어상으로 되어있기 때문에 에러가 뜨는거 같은데 맞나요??
물론 W<I>()()의 리턴값을 int로 바꾸고 실행했습니다.