일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- photon
- SpinLock
- unorderedset
- Unity
- 지크슈
- 동기화
- NotFoundException: String resource ID #0x0
- map
- 포톤
- semaphore
- StartActivityForResult
- 스핀락
- registerForActivityResult
- 광유다
- 유니티슈팅게임
- 안드로이드스튜디오
- 유니티
- 게임개발
- unityAR
- 바이너리세마포
- C++
- unorderedmap
- ARface
- dependencyResilutionManagement
- Vector
- list
- 뮤텍스
- mutex
- Java
- 세마포
- Today
- Total
목록분류 전체보기 (79)
와와
16-3. 타입을 알려주는 키워드 decltype 와 친구 std::declval 1. decltypeC++11에서 도입된 decltype 키워드는 식의 타입을 알아내는데 사용하는 키워드이다.decltype(/* 타입을 알고자 하는 식*/) 기본적인 사용 예시:#include struct A { double d;};int main() { int a = 3; decltype(a) b = 2; // int int& r_a = a; decltype(r_a) r_b = b; // int& int&& x = 3; decltype(x) y = 2; // int&& A* aa; decltype(aa->d) dd = 0.1; // double} 2. 값 카테고리C++에서 모든 식(express..
유니폼 초기화 1. 배경 C++에서 객체를 생성할 때 괄호()를 사용하면 의도치 않게 함수 선언으로 해석되는 경우가 있다.#include class A { public: A() { std::cout 이 코드는 A 객체를 생성하는 것처럼 보이지만, 실제로는 A를 반환하고 인자가 없는 함수 a를 선언한 것으로 해석된다. 2. 균일한 초기화 문법: 중괄호{} 사용 C++11에서는 이러한 모호성을 해결하기 위해 중괄호{}를 사용하는 균일한 초기화를 도입했다#include class A { public: A() { std::cout 중괄호 초기화의 중요한 특징은 데이터 손실이 있는(Narrowing) 변환을 허용하지 않는다는 것이다.#include class A { public: A(int x) { st..
https://modoocode.com/285" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2019-05-19 이 글은 57869 번 읽혔습니다. 이번 강좌에서는에 대해 다룹니다.안녕하세요 여러분! 이번 강좌에서는 여태까지 " data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/285" data-og-url="https://modoocode.com/285" data-og-image=""> 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2019-05-19 이 글은 57869 번 읽혔습니다. 이번 강좌에서는에 대해 다룹니다.안녕하세요 여러분! 이번 강좌에서는 여태까지modooc..
C++의 멀티스레딩 1. 프로세스와 스레드 프로세스는 실행 중인 프로그램의 인스턴스이다. 각 프로세스는 독립된 메모리 공간을 가집니다.반면 스레드는 프로세스 내에서 실행되는 작업의 단위로, 같은 프로세스 내의 스레드들은 메모리를 공유한다. 2. 왜 멀티스레드 프로그래밍을 할까?병렬화 가능한 작업: 예를 들어, 1부터 10000까지의 합을 계산할 때, 이를 여러 스레드로 나누어 계산하면 더 빠르게 결과를 얻을 수 있다.대기 시간이 긴 작업: 네트워크 요청과 같이 대기 시간이 긴 작업을 별도의 스레드에서 처리하면, 메인 스레드가 블로킹되지 않고 다른 작업을 계속할 수 있다. 3. C++에서 스레드 생성하기C++11 부터 표준 라이브러리에 thread가 추가되어 쉽게 스레드를 생성할 수 있다.#include..
함수 객체 Callable ()를 붙여서 호출할 수 있는 모든 것 Std::function 모든 Callable들을 보관할 수 있는 객체#include #include #include int some_func1(const std::string& a) { std::cout f1 = some_func1; std::function f2 = S(); std::function f3 = []() { std::cout std::function 이름 = Callable; 와 같은 형태로 템플릿 인자로 전달 받을 함수의 타입을 가진다. 멤버 함수를 가지는 std::function 멤버 함수를 호출할 때, 구현 상 자신을 호출한 객체를 인자로 암묵적으로 받고 있다.따라서 아래와 같은 코드를 실행하면 에러가 날..

https://modoocode.com/229" data-og-description="모두의 코드 씹어먹는 C ++ - 작성일 : 2018-09-18 이 글은 57754 번 읽혔습니다. 이번 강좌에서는 C++ 의 RAII 패턴unique_ptr안녕하세요 여러분! 지난번 강좌에서 다" data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/229" data-og-url="https://modoocode.com/229" data-og-image=""> 씹어먹는 C ++ - 모두의 코드 씹어먹는 C ++ - 작성일 : 2018-09-18 이 글은 57754 번 읽혔습니다. 이번 강좌에서는 C++ 의 RAII 패턴unique_ptr안녕하..

https://modoocode.com/227" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2018-03-24 이 글은 72589 번 읽혔습니다. 이번 강좌에서는 복사 생략 (Copy elision)우측값 레퍼런스 (rvalue referen ce)이동 생성" data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/227" data-og-url="https://modoocode.com/227" data-og-image="https://scrap.kakaocdn.net/dn/cR7dI7/hyW6JsnR9N/1UrecfkRaFzdxOpciChTH0/img.png?width=670&height=287..

C++에서의 예외 처리 예외 발생시키기 - throwC++ 에서는 throw를 통해 예외가 발생하였다는 것을 명시적으로 나타낼 수 있다. 위과 같이 throw 로 예외로 전달하고 싶은 객체를 써주면 된다.C++ 표준에는 out_of_range, overflow_error, length_error, runtime_error 등등 여러가지가 정의되어 있고 표준 라이브러리에서 활용한다. 예외를 throw 하게 되면, throw 한 위치에서 즉시 함수가 종료되고, 예외 처리하는 부분까지 점프하게 된다. 따라서 throw 밑에 있는 모든 문장은 실행되지 않는다. 한 가지 중요한 점은예외 throw -> 즉시 함수 종료 -> 예외 처리하는 부분까지 점프 (catch) 의 과정을 거치므로 throw 밑에 있는 모든 ..

10-1. C++ STL - 벡터(std::vector), 리스트(list), 데크(deque) C++ 템플릿 라이브러리(STL)를 일컫는다면 다음과 같은 세 개의 라이브러리들을 의미한다.임의 타입의 객체를 보관할 수 있는 컨테이너 (container)컨테이너에 보관된 원소에 접근할 수 있는 반복자 (iterator)반복자들을 가지고 일련의 작업을 수행하는 알고리즘 (algorithm) 컨테이너시퀀스 컨테이너: 배열 처럼 객체들을 순차적으로 보관 (vector, list, deque)연관 컨테이너: 키를 바탕으로 대응되는 값을 찾아줌 시간 복잡도 (빅오 표기) 벡터임의의 위치 원소 접근 ([], at) : O(1)O(1)맨 뒤에 원소 추가 및 제거 (push_back/pop_back) : amorti..

9-1. 코드를 찍어내는 틀 - C++ 템플릿(template) C++ 템플릿 (template)class Vector { std::string* data; int capacity; int length; public: // 생성자 Vector(int n = 1) : data(new std::string[n]), capacity(n), length(0) {} // 맨 뒤에 새로운 원소를 추가한다. void push_back(std::string s) { if (capacity 과 같이 String 데이터를 저장하는 Vector 클래스가 있다.String 말고도 int, char 등의 데이터를 저장하는데도 쓰고 싶다면 템플릿을 사용하면 됨.T 라는 타입의 객체들을 보관하는 Vector 클..