본문 바로가기

[C#] Guard Clause public static void SampleMethod(int[] array, int index, Span span, string text) { if (array is null) { throw new ArgumentNullException(nameof(array), "The array must not be null"); } if (array.Length >= 10) { throw new ArgumentException($"The array must have less than 10 items, had a size of {array.Length}", nameof(array)); } if (index = array.Length) { throw new ArgumentOutOfRange.. 더보기
Visual Studio로 리눅스 개발하기 Visual Studio 2017/2015로 리눅스 개발하기 Visual C++ 2015/2017에서는 리눅스에서 개발할 수 있는 환경을 제공한다. 그리고 아래 링크에 툴셋 설치, 세팅, 디버깅 방법 등 모두 나와 있으니 따라하자.https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/ 개념은,ssh로 해당 리눅스에 접속하여, 프로젝트의 모든 파일을 리눅스에 복사하여 컴파일한다.(파일이 많을 경우는 어떻게 하지?)그래서 파일 경로와 같은 모든 환경을 리눅스에 맞춰 세팅해야 한다. 더보기
스티브 잡스 I Said 中 래리 페이지에게구글이 성장할 때 어떤 회사가 되고 싶어 했는지를 찾아보십시오.이제 구글은 어디에나 존재하지요.당신이 집중하고자 하는 다섯개의 제품은 무엇입니까?나머지는 모두 제거하십시오.그것들은 당신을 끌어내릴 것이기 때문입니다.그것들은 당신을 마이크로소프트가 되도록 만들 것입니다.그것들은 제품을 위대하게 만들지 않고 적당한 제품이나 만들도록 하겠지요.저도 가능한 제가 할 수 있는 한의 도움을 주려고 햇습니다.저는 마크 주커버그 같은 친구들에게도 계속해서 이런 일들을 하고 싶습니다.앞으로 제게 남은 시간을을 그렇게 사용할 겁니다.저는 다음 세대가 여기에 있는 위대한 회사들의 혈통과 전통을 이어가는 방법들을 명심하는 데 도움을 주고 싶습니다.실리콘밸리는 저를 매우 지지해주었습니다.저는 최선을 다해서 이를 .. 더보기
SSO (short string optimization) c++에 SSO (Short String Optimization) 라는 개념이 있다.Effective Modern C++ 책을 보다가 검색한 걸 정리해 본다.[1]의 내용을 정리한 것이다. new/malloc를 사용하지 않고 배열로 만든 문자열은 스택에 저장이 되는데,이는 new/malloc를 사용하여 힙에 메모리를 할당한 것보다 속도면에서 빠르다. 그러나 배열은 고정된 사이즈를 사용해야 하는 반면, new/malloc를 사용하면 동적으로 사이즈를 정할 수 있다.또한 스택의 크기는 제한적인 반면, 힙 영역은 시스템 메모리 만큼 사용할 수 있다. std::string는 보통 힙영역에 문자열을 저장한다. (new char [size]를 한 것처럼)이렇게 해야 아주 큰 문자열도 스택 오버플로우 없이 저장할수 .. 더보기
[c++14] 함수 실행 시간 측정 함수 실행 시간 측정을 하려면,실행 전 시간을 체크하고, 실행 후 시간을 체크해서 차이를 계산해주어야 한다.그러나, 아래 템플릿을 이용해서 쉽게 할수 있다. templatestatic auto duration(F&& func, Args&&... args){ using namespace std::chrono; auto start = steady_clock::now(); auto ret = std::forward(func)(std::forward(args)...); auto dur = duration_cast(steady_clock::now() - start); TRACE(_T("dur : %d\n"), dur.count()); return ret; } 사용은 대충 이렇게..#include int func(.. 더보기