«templates» 태그된 질문

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

4
템플릿 유형의 올바른 생성자를 호출하는 방법은 무엇입니까?
다음 코드에서 주석 처리 된 줄을 바로 위의 줄과 동일한 방식으로 작동하게하려면 어떻게해야합니까? 적절한 코드 생성자를 호출하는 일반 코드로 만들고 싶습니다 Type. #include <string> #include <iostream> template <typename Type> struct Class { Type data; Class(Type data) : data(data) { } }; int main() { Class<std::string> a = std::string("abc"); // Class<std::string> …



4
std :: function이 과부하 해결에 참여하지 않는 이유는 무엇입니까?
다음 코드는 컴파일되지 않는다는 것을 알고 있습니다. void baz(int i) { } void baz() { } class Bar { std::function<void()> bazFn; public: Bar(std::function<void()> fun = baz) : bazFn(fun){} }; int main(int argc, char **argv) { Bar b; return 0; } 때문에 std::functionIS 내가 읽을로, 오버로드 확인을 고려하지 말라고 이 다른 …

1
클래스 템플릿의 중첩 클래스가 특수화를 통해서만 정의 된 코드를 거부하기 위해 Clang이 올바른가요?
다음과 같은 클래스 템플릿이 제공됩니다. template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; 우리는 정의 Inner 각 전문 분야에 대해 별도로 합니다 Outer. template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; 그런 다음 멤버 함수를 정의하십시오. f 모든 전문화에 대해 한 번Outer . auto Outer<T>::f(Inner) -> …

2
모호한 과부하 템플릿
다음과 같은 템플릿 코드가 있습니다 #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void foo(std::vector<std::vector<T1>> bar) { std::cout << "SPECIFIC (vector)" << std::endl; } template<typename T1, int SIZE> void foo(std::vector<std::array<T1, SIZE>> bar) { std::cout << "SPECIFIC (array)" << …
16 c++  templates 

3
다양한 템플릿 : 그룹에서 인수 펼치기
두 가지 인수를 취하는 함수가 있습니다. template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } 그리고 인수를 쌍으로 전달 해야하는 가변적 인 것 : template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % 2 == 0); …

2
템플릿 typename 인수에 대한 참조를 전달하는 방법
템플릿 typename 인수에 인수로 참조를 전달하는 방법이 있습니까? 예를 들어 int에 대한 참조를 전달하기 위해 int를 전달하는 대신 의미합니다. template <typename T> struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { int* a = new int(6); Foo<decltype(a)> foo1(a); // ptr is a copy of a …
15 c++  templates 

5
템플릿 클래스 생성을 위해 for 루프에 const 변수를 사용하는 방법은 무엇입니까?
나는 같은 코드를 가지고있다. template <size_t N> class A { template <size_t N> someFunctions() {}; }; 이제 클래스의 인스턴스를 만들고 for 루프에서 많은 값 집합에 대한 함수를 호출하려고합니다. // in main() int main() { for (int i = 1; i <= 100; i++) { const int N = i; // …

1
Clang은 코드를 컴파일하지 않지만 gcc 및 msvc는 코드를 컴파일했습니다.
내 코드 또는 컴파일러 (가능하지 않은)에서 문제가 무엇인지 이해하지 못합니다. 다음과 같은 코드가 있습니다. #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, std::void_t<typename T::dummy_iterator>> : std::true_type {}; int main() { …

2
객체가 필수인지 클래스 유형인지 아닌지 아는 요점은 무엇입니까?
안녕하세요 Cppreference.com에서 이와 같은 많은 예를 보았습니다. std::is_class<T> std::is_integral 등등. 내가 얻을 예를 들어 코드를 실행하면 알 수 true또는 false. 그러나 그 점은 무엇입니까? 예를 들어 객체가 클래스 유형인지 아는가? #include <iostream> #include <type_traits> struct A {}; class B {}; enum class C {}; int main() { std::cout << std::boolalpha; …
14 c++  templates 

3
const ref를 사용하는 포인터 대 멤버 함수에는 템플릿 함수가 작동하지 않습니다.
최근에 코드 반복을 해결하기 위해 템플릿 함수를 작성했습니다. 다음과 같이 보입니다 : template<class T, class R, class... Args> R call_or_throw(const std::weak_ptr<T>& ptr, const std::string& error, R (T::*fun)(Args...), Args... args) { if (auto sp = ptr.lock()) { return std::invoke(fun, *sp, args...); } else { throw std::runtime_error(error.c_str()); } } int main() { …
14 c++  templates 

1
템플릿 클래스의 구조체에서 C ++ 컴파일러 문제
다음 코드는 gcc 또는 clang으로 컴파일 되지 않습니다 . template<class T> class foo{}; template<class T> class template_class_with_struct { void my_method() { if(this->b.foo < 1); }; struct bar { long foo; } b; }; 오류 메시지는 error: type/value mismatch at argument 1 in template parameter list for 'template<class T> class foo' …

3
함수가 정의 된 유형에 대해서만 함수 템플릿 내에서 함수 실행
입력 할 때 다양한 유형을 취하는 함수 템플릿이 있습니다. 이러한 유형 중 하나만 getInt()기능이 있습니다. 따라서 코드가 해당 유형에 대해서만 함수를 실행하기를 원합니다. 해결책을 제안하십시오. 감사 #include <type_traits> #include <typeinfo> class X { public: int getInt(){ return 9; } }; class Y{ }; template<typename T> void f(T& v){ // error: …

6
C ++에서 일반 구조체를 비교하는 방법은 무엇입니까?
일반적인 방식으로 구조체를 비교하고 싶습니다. 이와 같은 작업을 수행했습니다 (실제 소스를 공유 할 수 없으므로 필요한 경우 자세한 내용을 요청하십시오). template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) == 0; } 이것은 두 구조체 인스턴스가 동일한 멤버를 가지고 …

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