[[TableOfContents]] == 개요 == * '''M'''astering '''F'''urther '''C++''' * --Mxxxxx Fxxxxxx C++...-- == 진행 == * 진행 방식은 과거 [미시Cpp]를 벤치마킹(?)해서 진행합니다. * 즉, 주마다 특정 주제 내용을 소개하는 방식으로 진행됩니다. * --진행 스타일은 과거 [CS] 스터디와 동일합니다.-- * 복사와 이동부터는 완전히 PPT 진행으로 변경되었습니다. * 2016년 2학기 시작 직후부터 시작합니다. * 되도록이면 수요일 정모 직후, 7시에서 9시까지 진행합니다. * 주마다 진행 요일이 불가피하게 바뀌어야 할 수도 있습니다. * --진행에 사용되는 소스 코드는 해당 레포지토리에 있습니다.-- * --[https://github.com/nErumin/MFCplusplusSource]-- * 진행 방식 변경 이후로는 더 이상 업데이트 되지 않고 있습니다. * '''종료되었습니다!''' == 참가자 == * 참가하실 분은 아래 이름을 적어주세요! * [신형철], ~~프로 도강러~~[성훈], [지무근], [이민욱] * ~~[박인서] : 탈주자인데 개근중이다.. 응?~~ * [권준혁] : 참가할수있을 때 참가합니다. == 목표 == * C++ 돌아보기 --돌아보는 척 하면서 더 낯설게 만들기-- * C++11과 C++14의 내용 숙지 * 흔한 C++ 프로그래밍 실수 방지하기 * C++에서의 동시성 활용하기 == 참고 == * [http://www.kyobobook.co.kr/product/detailViewKor.lafejkGb=KOR&mallGb=KOR&barcode=9788945072207&orderClick=LAG&Kc=|C++ Primer 5th Edition] * 기본 바탕은 이 책을 기준으로 합니다. * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791195444946&orderClick=LAH&Kc=|Effective C++] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788956743998&orderClick=LAH&Kc=|More Effective C++] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966261642&orderClick=LAH&Kc=|Effective Modern C++] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788956743110&orderClick=LAH&Kc=|Effective STL] * [http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&mallGb=ENG&barcode=9781933988771&orderClick=LAG&Kc=|C++ Concurrency In Action] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788980545063&orderClick=LAG&Kc=|Exceptional C++] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788955507904&orderClick=LAG&Kc=|More Exceptional C++] * [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788956742618&orderClick=LAG&Kc=|Exceptional C++ Style] * 그 외 위키피디아와 C++ 레퍼런스 사이트 등 == 진행 내용 == * [MFC++/9월7일] * [MFC++/10월5일] * MFC++/11월2일 * MFC++/11월9일 * MFC++/11월30일 * MFC++/1월4일 * MFC++/1월11일 * MFC++/1월18일 * MFC++/2월1일 * MFC++/2월15일 * MFC++/2월22일 * MFC++/3월7일 * Chapter 11. 복사와 이동에서 복사까지 완료! * MFC++/3월22일 * Chapter 11. 복사와 이동 완료! * MFC++/3월29일 * Chapter 12. 연산자 오버로딩 완료! * MFC++/5월9일 * Chapter 13. 객체 지향 프로그래밍과 C++ 진행중. * MFC++/5월24일 * Chapter 13. 객체 지향 프로그래밍과 C++ 완료! * Chapter 14. 템플릿 진행중. * MFC++/5월31일 * Chapter 14. 템플릿 완료! * 스레드, 스레드 라이브러리의 역사, 컴퓨터 환경의 변화 * MFC++/7월12일 * thread * MFC++/7월21일 * 경합 조건, 경합 조건 방지와 인터페이스 설계, mutex, mutex를 제외한 경합 방지 수단 * MFC++/7월26일 * reader-writer mutex(shared_lock), 다중 락에서의 교착 방지하기, recursive_mutex * MFC++/8월11일 * 이전 진행 내용 회고 * condition_variable * MFC++/8월17일 * 이전 진행 내용 회고 * future/async/packaged_task/promise * MFC++/8월30일 * 이전 진행 내용 회고 * shared_future/system_clock/steady_clock/high_resolution_clock/duration/ratio/time_point * 타임 아웃 대기를 위한 접미사 for/until * MFC++/17/9월28일 * 메모리 모델, 객체와 메모리 위치, 원자적 연산 * modification order * typedef atomics * 복합 대입 연산자/fetch * MFC++/17/10월25일 * atomic_flag, atomic * exchange * compare_exchange_weak/compare_exchange_strong * 원자적 연산의 종류와 선택적 메모리 순서 적용 * MFC++/17/11월3일 * 이전 진행 내용 회고 * atomic, atomic, atomic * atomic free functions * inter-thread happens-before/synchronize-with relationships * memory_order * sequential consistency * MFC++/17/11월8일 * 이전 진행 내용 회고 * operation visibility * non-seq_cst world * relaxed order * MFC++/17/11월17일 * 이전 진행 내용 회고 * acquire/release order semantics * mixing memory order with transition * carries-dependencies-to * dependency-ordered-before * release/consume order * MFC++/17/11월24일 * kill_dependency * release sequence * atomic fence * tuple * MFC++/17/12월27일 * bitset * random generator/distribution * I/O manipulator * Concurrency Quiz! * MFC++/18/1월5일 * regex * non-format I/O operation * MFC++/18/1월10일 * operator new/delete * enum/union * pointer-to-member/pointer-to-mem_fun * [[HTML(종료!)]] == 진행 예정 내용 == === A. C++의 기능과 라이브러리 === * Chapter 1 - Chapter 10의 목차는 [[MFC++/이전목차]]를 참조해주세요. * Chapter 1. 변수와 타입 * Chapter 2. 문자열과 배열, 벡터 * Chapter 3. 표현식과 문장, 함수 * Chapter 4. 클래스 * Chapter 5. I/O와 C++ * Chapter 6. 순차 컨테이너 * Chapter 7. 일반화 알고리즘 * Chapter 8. 연관 컨테이너 * Chapter 9. 효율적이고 안전한 STL * Chapter 10. 동적 메모리 관리 * Chapter 11. 복사와 이동 * 이 챕터부터 스터디 진행이 완전히 PPT 진행으로 변경되었고, 따로 만들어진 목차는 없습니다. * Chapter 12. 연산자 오버로딩 * Chapter 13. 객체 지향 프로그래밍과 C++ * Chapter 14. 템플릿 === B. C++에서의 동시성 활용 === * Chapter 1. Hello, Concurrency! * Chapter 2. 스레드 관리 * Chapter 3. 스레드 간 데이터 공유 * Chapter 4. 동시성 연산 간의 동기화 * Chapter 5. C++ 메모리 모델과 원자적 연산 * [https://github.com/nErumin/CppConcurrencyInAction|스터디에 쓰인 발표 자료] * 진행 후, 내용을 추가할 지 논의할 예정입니다. == 덧글 == * 얍 - [성훈] * 얍! 얍! 얍! - [박인서] -----------