«c++» 태그된 질문

C ++는 범용 프로그래밍 언어입니다. 원래 C에 대한 확장으로 설계되었으며 유사한 구문을 갖지만 이제는 완전히 다른 언어입니다. C ++ 컴파일러로 컴파일 된 코드에 대한 질문에이 태그를 사용하십시오. 특정 표준 개정 [C ++ 11], [C ++ 14], [C ++ 17] 또는 [C ++ 20] 등과 관련된 질문에 버전 별 태그를 사용하십시오.

1
개념 TS 검사는 개인 액세스 수정자를 무시합니다.
RandomAccessIterator를 리턴하는 시퀀스가 ​​시작 / 종료되었거나 operator []가 정의되어 있고 void가 아닌 유형의 값을 리턴한다는 색인 가능한 개념을 작성하려고합니다. Stroustrup의 기사 에서 Sequence 개념에 대한 아이디어를 사용 하여 다음과 같이 보강했습니다. template <class T> concept bool Indexable = Sequence<T> || requires(T t, size_t n) { { t[n] } -> NotVoid; …
10 c++  c++-concepts 

1
템플릿 템플릿 클래스가있는 GCC / C ++ 17의 문제
다음 2 가지 과부하를 고려하십시오 template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } 첫 번째 클래스는 일반 클래스에서 작동하고 두 번째 클래스는 인스턴스화되지 않은 템플릿에서 작동합니다. 예를 들어 : std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 이제 다음 …
10 c++  templates  gcc  clang  c++17 

4
왜 main ()에서 NULL을 반환합니까?
때로는 C 및 C ++ 프로그램에서 NULL반환 값으로 사용 되는 코더가 표시 main()됩니다 (예 : #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } 이 코드를 gcc로 컴파일하면 다음과 같은 경고 메시지가 나타납니다. 경고 : return은 캐스트없이 포인터에서 정수를 만듭니다 [-Wint-conversion] 이는 매크로 NULL가 확장되고 (void*) 0main의 반환 값이 유형 …
10 c++  c  null  return  return-value 


1
C ++ 20에서 뷰를 가진 컨테이너를 구성 할 수 있습니까?
C ++ 20 표준 버전으로 범위가 C ++에 제공됩니다. 내 질문 : 우리는 어떤 범위에서 (기존의) 표준 라이브러리 컨테이너를 만들 수 있습니까? 더 중요한 것은 레인지 뷰를 사용하는 것입니까? 예를 들면 다음과 같습니다. #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { return x …
10 c++  c++20  range-v3 

1
GCC에서 unorder_map :: insert KeyEqual 예외 중 메모리 누수가 발생합니다.
GCC 7.3.1을 사용하고 있지만 버전 9.2.0이라고 생각되는 coliru에서도 테스트되었습니다. 다음을 사용하여 빌드하십시오. g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp 여기 있습니다 rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; std::unordered_map<std::string, std::string, std::hash<std::string>, MyComp> mymap; mymap.insert(std::make_pair("Hello", "There")); mymap.insert(std::make_pair("Hello", …


1
C ++에서 ^ () {} 및 ^ {}의 의미는 무엇입니까?
최근에 다음과 같은 C ++ 코드를 읽었습니다. setData(total, &user, ^() { struct dst_t to = {ip, port}; sendData(to, data); }); getData(total, ^{ recvData(data, NULL); }); 나는 본 적이 ^() {}없다 ^{}. 그들은 무엇을 의미합니까? 익명의 기능?
10 c++ 

5
변형의 색인을 검색 할 수없는 이유는 무엇입니까?
변형의 내용에 액세스하려고합니다. 나는 거기에 무엇이 있는지 모르지만 고맙게도 변형이 있습니다. 따라서 변형에 대한 색인을 요청한 다음 해당 색인을 std::get내용에 사용한다고 생각 했습니다. 그러나 이것은 컴파일되지 않습니다. #include <variant> int main() { std::variant<int, float, char> var { 42.0F }; const std::size_t idx = var.index(); auto res = std::get<idx>(var); return 0; …
10 c++  c++17  variant 

2
읽기 전용 시나리오에서 언제 널 종료 문자열이 필요합니까?
나는 std::string_view도서관 에서 놀고 있었고 std::string_view가능한 한 많이 사용하기 위해 노력하고있는 코드베이스를 변경하려고 생각 하고 있습니다. 그러나 내가 std::string_view대신에 언제 어디에서 사용 해야하는지에 관해 읽은 많은 스레드 에서 const std::string &. "널 종료 문자열이 필요하지 않을 때"라는 많은 답변을 보았습니다. 웹에서 검색을 시작하면서 "널 종료 문자열이 언제 필요합니까?" 나는 그 …

1
C ++ 17 병렬`for_each`의 스레드 수를 제한 할 수 있습니까?
나는 사용한다 std::for_eachstd::execution::par 구조 벡터로 표현되는 거대한 입력에 대해 복잡한 계산을 수행 하는 데 합니다. 계산에는 하드웨어 (예 : 네트워크 또는 디스크 IO)와 관련된 지연이 필요하지 않으며 "단지 CPU"계산입니다. 저에게는 하드웨어 스레드가있는 OS 스레드를 더 만들지 않는 것이 합리적입니다. 그러나 Visual C ++ 2019는 평균 50 개의 스레드를 생성하며 12 …

2
다른 C ++ 컴파일러간에 자동 유형이 일치하지 않습니다.
그래서 현대 C ++의 풍미로 내적 제품 ( https://en.wikipedia.org/wiki/Dot_product ) 을 구현하려고 시도 하고 다음 코드를 생각해 냈습니다. #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, i2 …

2
C ++로 솔루션을 빌드 한 후 VCRUNTIME140_1.dll이 누락 됨
작은 텍스트 모험을 만들었습니다. 릴리스 및 x64 설정을 사용하여 Visual Studio Community 2019로 솔루션을 빌드했습니다. * .exe 파일을 다른 생성 된 파일과 함께 압축하여 VS가 설치되지 않은 다른 PC로 전송했으며 이미지에 표시되는 오류가 발생했습니다. 내 PC를 검색했는데 파일이 두 개의 다른 폴더에 있으며 그 중 하나는 system32이므로 새 PC에서 파일을 …
10 c++  dll 

1
엔 클로징 범위의 변수를 "캡처"하기 위해식이 필요합니까?
다음 예제에서 함수 인수는 필수 표현식을 사용하여 표현식이 제대로 구성되어 있는지 테스트하는 데 사용됩니다. require 표현식은 인수를 취하지 않습니다. 함수 범위의 변수를 직접 사용합니다. #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); }) v.resize(n); } template<typename T> void Eziser(T &v, …

2
컴파일러가 사용하지 않는 정적 thread_local 클래스 멤버를 무시 했습니까?
클래스에서 스레드 등록을 원하므로 thread_local기능 검사를 추가하기로 결정했습니다 . #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl; } }; class Bar { public: Bar() { std::cout << "Bar()" << std::endl; //foo; } ~Bar() { std::cout …

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