템플릿 함수에 템플릿 매개 변수로 std::max 함수를 전달하려고하지만 컴파일러가 함수 유형을 추론 할 수없는 오류를 인쇄합니다. 간단한 예제가 동일한 문제를 재현합니다. 그것은 자신의 max2 기능을 작동하지만 STL std::max 작동하지 않습니다 here와 같이 #include <algorithm>
template <class T>
T max
는 I 매크로를 측면). SomeObject* myObj = checkAlloc(new SomeObject());
를 상기 체크 포인터 함수로서 구현된다 : 매크로로서 사용 아래와 지금 inline __device__ SomeObject* checkPointer(SomeObject* pointer, char *file, int line)
{
main 함수에서 으로 선언 된 변수에 const int 포인터 변수를 할당했습니다. 그런 다음 decltype(x)을 사용하여 유형을 확인하십시오. 유형이 const int* 일 것으로 예상했습니다. 그러나 is_same은 false을 반환합니다. int main()
{
int a = 10;
const int * cp_val= &a;
auto 키워드의 사용이 최신 버전의 C++에서보다 효율적으로 처리되었다고 생각합니다. data type specifier없이 auto 이전에 서면 int로 기본 설정됩니다 : auto value = 5.7; // implicit conversion to int
std::cout << value; // 5
auto val2 = "Hello there!
auto 키워드는 코드를 단순화하기 위해 도입되었습니다. 특히 stl 컨테이너를 반복 할 때마다 루프를 반복 할 때마다 구문이 엉망인 std::vector<MyType>::iterator 구문을 사용하지 않아도보다 쉽고 멋지게되었습니다. 그러나 정확히 동일한 일을 수행 할 auto을 사용하지 않고 코드를 작성할 수있었습니다. std::tuple<int, i
깊은 조사를하고 대신 도움을받을 시간이 없으므로 사과드립니다. 는 간단한 코드를 고려해 #include <iostream>
enum class PrintColour
{
COLOUR_1 = 0,
COLOUR_2 = 1,
};
void colour(auto c = PrintColour::COLOUR_1)
{
switc
Structured bindings은 C++ 17로 도입되었습니다. 튜플이나 구조체에서 초기화 된 여러 변수를 선언 할 수있는 기능을 제공합니다. 이 코드는 c++17 컴파일러를 사용하여 컴파일됩니다. I는 auto와 변수를 선언하지 않으면 #include <iostream>
#include <tuple>
int main() {
auto tu
나는 최근에이 코드 조각은 모두 GCC와 MSVC에서 잘 컴파일 것을 발견 // All of these lines will call the lambda function
foo();
foo(100);
foo("Test");
foo("Testing", 1, 2, 3);
lambda functions의 C++ 참조 이것에 대해 언급하지 않는 것, 그리
자동 비 유형 매개 변수 (C++ 17)를 사용하려고합니다. 'Sample1 :: type'은 'integral_constraint < int, 0 >'이어야하지만 'Sample0 :: type'과 동일 할 것으로 예상됩니다. g ++ 버그 또는 기능에 대한 오해가 있습니까? 우분투 17.10에서 g ++ (Ubuntu 7.2.0-8ubuntu3) 7.2.