왜이 문장이 C++에서 유효합니까?매개 변수 사양의 개체
qi::rule<Iterator, std::string(), skipper<Iterator> > name;
여기에서 추출 :
규칙의 정의는 (재개) 다음
template <typename Iterator, typename T1, typename T2,
typename T3, typename T4>
struct rule : boost::proto::extends<bla, bla>, parser<bla, bla>
{
bla, bla
};
여기에서 추출 :
,617규칙 정의그러나 나는 그것을 객체 전송 유형을 기대하고있다. 것이 가능하다?
의 인스턴스는이 모호 하나의 이유 때문에 템플릿 인수는 ((A) 유형 또는이 될 수 있다는 사실에 떨어져 있음을 알아 흥미로운 일이 될 수 있습니다 b) 컴파일 타임 상수 적 표현. 생성자가'constexpr'이 될 수 없으므로 컴파일러는 객체를 생성하지 않고 함수 유형을 선언한다는 것을 명확하게 알 수 있습니다. C++ FQA는 http://yosefk.com/c++fqa/ctors.html#fqa-10.2에 좋은 단락을 가지고 있습니다. – sehe
@ 저의 이해는 생성자 **가'constexpr'이 될 수 있지만' std :: string'은 정수형이 아니기 때문에,'std :: string()'은 비 형형 적분식이 될 수 없습니다. – juanchopanza
좋아, 꽤 멋지다! http://en.cppreference.com/w/cpp/language/constexpr. 정밀도에 감사드립니다. – sehe