그래픽스 과제 백업 22/04/05
·
C++
#pragma once #pragma warning(disable : 4996) #include #include #include #include "Vector.h" #include "Matrix.h" using namespace std; int main() { string Text; string oper; ifstream ReadFile("Input.txt"); ofstream WriteFile("Output.txt"); if (ReadFile.is_open()) { if (WriteFile.is_open()) { getline(ReadFile, Text); //vector matrix 구별 if (Text == "vector") { double Dresult; Vector Vresult; getline..
쓰레딩 라이브러리
·
C++
간단하게 쓰레드, 뮤텍스, 조건 변수 정도만 배워보자! std::thread 표준 쓰레드다. 이동(move) 가능 복사 불가능 자식 쓰레드가 끝날 때 까지 기다려야한다. -> thread.join(); -> 쓰레드 개체가 끝날 때까지 현재 쓰레드를 멈춰 놓는다. -> 이 함수를 호출한 후 쓰레드 개체를 안전하게 소멸시킬 수 있다. 쓰레드의 ID 구하기 std::thread::id childID = thread.get_id(); -> OS마다 ID관리는 다르다. 쓰레드 떼어 내기 thread.detach(); 떼어진 쓰레드는 메인 쓰레드와 무관하게 독립적 실행 -> 떼어진 쓰레드는 join 불가능 -> std::thread::joinable()함수를 통하여 쓰레드가 활성 쓰레드인지 아닌지 확인 메인 쓰레드..
모듈 시스템
·
C++
C++17까지도 여전히 C++ 표준이 아니다. 비주얼 스튜디오에서 \experimental:module 플래그를 활성화하여 사용할 수 있다. 표준이 되면 -> 컴파일이 매우 빨라짐, -> .cpp, .h파일로 나눌 필요 없어짐(이는 컴파일 속도를 높이기 위해서였다.) -> Java의 패키지처럼 작동 다만, .cpp, .h 둘 다 있는 레거시 코드는 어떻게 처리? 만약 #define을 너무 많이 쓴다면??
파일 시스템
·
C++
C++17의 새로운 라이브러리다. C++14 이전에는 파일 시스템과 다음과 같은 구성요소에 대하여 연산을 할 방법이 없었다. -> 경로, 일반 파일, 디렉터리 파일 시스템은 파일 읽기와 쓰기에 관한 라이브러리가 아니다. 파일 속성 변경, 디렉터리 순회, 파일 복사 등에 관한 라이브러리다. 이 모든걸 std::fs로 할 수 있다. 컴파일러에 따라 std::filesystem 네임스페이스 대신 std::experimental::filesystem::v1을 사용해야 될 수도 있다. 파일 시스템 연산 1. 플랫폼 공통적인 방법으로 경로 합치기 2. 파일과 디렉터리 복사, 이름바꾸기, 삭제 3. 디렉터리에서 파일, 디렉터리 목록 가져오기 4. 파일 권한 읽기 및 설정 5. 파일 상태 읽기 및 설정 std::fil..
가변 인자 템플릿
·
C++
주로 인자 전달용 (std::make_unique()에서 사용) -> std::make_unique를 제외하고는 전체적으로 실용적이지 않음 사용하는데 있어서 실용적이지는 않다고 판단된다.
람다 식(Lambda Expression)
·
C++
쉽게 말해서는 이름 없는 함수다. 쉽게 일회용 함수라고 생각하면 된다. []() -> { } captures = 캡처 블록 parameters = 매개변수 목록(선택 사항) specifiers = 지정자(선택 사항) return_type = 반환 형(선택 사항) body = 함수 바디 캡처 블록 : 람다 식을 품는 범위 안에 있는 변수를 람다 식에 넣어줄 때 사용 - 종류: - [] 비어있음 - [=] 값에 의한 캡처. 모든 외부 변수 캡처, 람다 식 안에서 수정X - [&] 참조에 의한 캡처, 모든 외부 변수를 캡처 - [] 특정 변수를 값으로 캡처, 람다 식 안에서 수정X - [&] 특정 변수를 참조로 캡처 - 캡처 옵션은 섞어 쓸 수 있다. - ex) [=, &score1] -> 모든 변수를 값에 ..