«templates» 태그된 질문

템플릿 태그는 일반 프로그래밍 (특히 C ++) 및 템플릿 엔진을 사용한 데이터 / 문서 생성 등 여러 컨텍스트에서 사용됩니다. 구현시 많은 질문에이 태그를 사용하는 경우 구현이 작성된 코드 언어에 태그를 지정하십시오.


2
std :: is_function은 어떻게 구현됩니까?
다음은 어떻게 구현 std::is_function됩니까? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; ( CPP 참조에서 ) 나에게 보인다, int이 정의에 따른 함수일 것이다. 내가 무엇을 놓치고 있습니까?
82 c++  templates  std  sfinae 

5
ES6 템플릿 리터럴이 문자열 연결보다 빠릅니까?
ES6에서 문자열 연결 또는 템플릿 리터럴을 사용할 때 최신 브라우저에서 HTML 코드 생성이 눈에 띄게 빠르게 실행됩니까? 예를 들면 : 문자열 연결 "<body>"+ "<article>"+ "<time datetime='" + date.toISOString() +"'>"+ date +"</time>"+ "</article>"+ "</body>" 템플릿 리터럴 `<body> <article> <time datetime='${ date.toISOString() }'>${ date }</time> </article> </body>`

6
C ++ 11을 사용하는 중복 코드
현재 프로젝트를 진행 중이며 다음과 같은 문제가 있습니다. 두 가지 다른 방법으로 작업하려는 C ++ 메서드가 있습니다. void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } 그리고 실제 기능이 훨씬 길기 때문에 내 코드를 복제하지 않고 싶습니다. 문제는 어떤 상황에서도 MyFunctionWithABonus 대신 MyFunction이 호출 …
80 c++  c++11  templates 


4
템플릿 클래스 친구가있는 클래스 템플릿, 여기서 실제로 무슨 일이 일어나고 있습니까?
하자 내가, 이진 트리에 대한 클래스를 만드는거야라고 BT, 나는, 나무의 요소를 설명하는 클래스가 BE, 같은 뭔가를 template<class T> class BE { T *data; BE *l, *r; public: ... template<class U> friend class BT; }; template<class T> class BT { BE<T> *root; public: ... private: ... }; 이것은 작동하는 것처럼 보입니다. …
80 c++  class  templates 

1
종속 범위가있는 중첩 템플릿
종속 범위는 무엇이며 다음 오류의 맥락에서 typename의 의미는 무엇입니까? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include <vector> #include <memory> template<typename T> struct ptrModel { typedef std::unique_ptr<T> Type; }; …
79 c++  templates  scope  nested 

6
Variadic 템플릿 팩 확장
가변 템플릿과 기능을 배우려고합니다. 이 코드가 컴파일되지 않는 이유를 이해할 수 없습니다. template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } 컴파일 할 때 오류와 함께 실패합니다. 오류 C3520 : 'args':이 컨텍스트에서 매개 …

3
컴파일 타임에 다차원 std :: vector의 깊이를 얻으려면 어떻게해야합니까?
다차원을 취하고 std::vector깊이 (또는 차원 수)를 템플릿 매개 변수로 전달 해야하는 함수가 있습니다. 이 값을 하드 코딩하는 대신 깊이를 값 으로 반환 하는 constexpr함수 를 작성하고 싶습니다 .std::vectorunsigned integer 예를 들면 다음과 같습니다. std::vector<std::vector<std::vector<int>>> v = { { { 0, 1}, { 2, 3 } }, { { 4, 5}, …

4
템플릿 메타 프로그래밍
누군가 첫 번째 템플릿 메타 프로그래밍 방식이 무한 루프가되는 이유를 설명해 줄 수 있지만 두 번째 템플릿은 올바르게 실행됩니다. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ? commondivs<N,(M-N)>::val : commondivs<(N-M),M>::val; }; template<int N> struct commondivs<N,N> { static const int …

2
함수에서 remove_reference가 작동하지 않는 이유는 무엇입니까?
다른 날 템플릿 메타 프로그래밍을 할 때 이상한 일이 발생했습니다. 기본적 으로이 주장은 (내가 예상 한대로) 지나치지 않습니다. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); 처음에는 함수 참조를 정의하는 구문 오류가 있다고 생각했지만이 주장은 통과하여 그렇지 않습니다. static_assert(std::is_same_v<void()&, void()&>); 또한 remove_referencecppreference에서 소스를 복사하여 직접 구현하려고 시도했지만 작동하지 않았습니다. 무슨 일이야?
38 c++  templates  types  c++17 

4
템플릿을 사용하여 함수 오버로드
템플릿을 사용하여 함수를 정의하려고하는데 형식 이름이 int 또는 anEnum (정의 된 열거 형)이되고 싶습니다. 나는 다음을 시도했지만 실패했다. template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T &aVariable){} 내가하려고하는 것은 두 개의 오버로드 된 함수를 정의하는 대신 템플릿을 사용하는 것입니다. 프로그래머가 …

3
C ++에서 유형 목록의 직교 곱을 작성하는 방법은 무엇입니까?
자기 설명. 기본적으로 다음과 같이 유형 목록이 있다고 가정하십시오. using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; 가변 목록 유형일 수 있습니다. 직교 제품의 유형 목록을 얻으려면 어떻게합니까? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, double>, type_list<somestructA, somestructB, short> >; …

4
일반 유형으로 특정 유형의 STL 컨테이너
특정 유형의 컨테이너를 std::string매개 변수로 사용하는 함수를 만들 수있는 방법이 있습니까? void foo(const std::container<std::string> &cont) { for(std::string val: cont) { std::cout << val << std::endl; } } 모든 유형의 stl 컨테이너에 대해 입력으로 호출합니까? 위처럼? std::set<std::string> strset; std::vector<std::string> strvec; std::list<std::string> strlist; foo(strset); foo(strvec); foo(strlist);

1
함수 매개 변수의 템플리트 인수 자리 표시자인 'auto'
C ++ 20에서는 auto함수 매개 변수 유형을 사용할 수 있습니다 . 또한 사용 수 있습니까 auto템플릿 인수 자리 표시 자 (유사하지 만의 정신에서 C ++ 17 템플릿 <자동> 방식) 함수의 매개 변수 유형을 검색 하시나요? 따라서 C ++ 20 이전 코드는 다음과 같습니다. template<typename First, typename Second> void printPair(const std::pair<First, …
22 c++  templates  auto  c++20 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.