나는 std :: enable_if를 처음 사용하고 어떻게 사용하는지 궁금하다. template<int a, int b>
class foo {
int c;
}
가 난 단지 a = 5.
가 어떻게 표준 : enable_if를 사용하여 그렇게 할 때 멤버 C를 가지고 템플릿을 원하는 : 나는 템플릿 클래스가? std :: enable_if를
다음 코드는 인텔 C++ 여기 #include <type_traits>
#include <iostream>
template <
typename T,
typename std::enable_if<std::is_integral<T>::value>::type
>
void myfunc(T a)
{
std::cout << a <
다음 코드는 컴파일되지 않습니다. 이 인수 typename std::enable_if<std::is_void<Ret>::value, Ret>::type _on_dispatched() {
// ...
}
typename std::enable_if<!std::is_void<Ret>::value, Ret>::type _on_dispatched()
템플릿 initializer_list 건설을 지원 , 내가 합리적으로 쉽게 initializer_list 생성자를 위임 할 수 있습니다 보인다 예를 들면. int main(int argc, char* argv[]) {
holder<std::vector<int>> y{1,2,3};
return EXIT_SUCCESS;
}
는하지만 꽤
나는이 문제에 대해 하루 종일 곤두박질 쳤습니다. 기본적으로 템플릿 유형이 내가하고있는 일을 할 수있는 클래스에서 상속 받았다는 것을 확인하고 싶습니다. 이렇게하려면 std :: enable_if 사용하고 컴파일 타임에 원하는 방식으로 작동하는 뭔가가 있지만 실제로 클래스를 사용하여 뭔가를 시도 할 때 더 정의되지 않은 참조 오류 점점 계속. class T
휴면 코드는 gcc 4.7에서 작동합니다. 아이디어는 시퀀스, 포인터, tupples, 쌍, 사용자 정의 형식 및 기타 등등에서 작동하는 이러한 일반 함수가 있습니다. 이러한 함수 중 하나가 유형에 대해 정의 된 경우 모두가 있어야합니다. 내가 가진 문제는 그들을 전문화하는 방법을 결정하는 것이다. 필자는 각 유형별로 특화된 템플릿 클래스를 정의하고 각 함
gcc에서 컴파일되고 실행되는 코드가 있는데 MSVC 2012 RC에서 컴파일되지 않습니다. 이유를 설명 할 수 없으므로 MSVC에 버그가 있거나 코드가 잘못되었습니다. push_back 및 at이 Some<vect_t>의 구성원이 아닌 것을 http://liveworkspace.org/code/45d78872a2c7f30192277a81c655b471 M
간단한 벡터 클래스를 작성하고 특정 길이의 벡터에서만 사용할 수있는 일부 멤버 함수를 갖고 싶습니다. 예를 들어 3 요소 벡터). 나는 std :: enable_if를 우연히 발견했고, 내가 원하는 것을 할 수있는 것처럼 보이지만 제대로 작동하지 못하는 것 같다. vec.cpp: In instantiation of ‘class Vector<double, 4
우리가하고있는 프로젝트에서 사용자가 (다른 것들 중에서) 항목을 선택할 수있는받은 편지함을 만들었습니다. 사용자가 항목을 선택하면 버튼이 활성화되어 있어야합니다. 아무 것도 선택되어 있지 않으면 버튼을 비활성화해야합니다. 만큼 간단한 하지만 내 인생에, 나는 그것을 :-(작업을 얻을 수없는 경우, 여기에 바이올린 찾을 수 있습니다 http://jsfiddl