vs2015 c++ new features
TRANSCRIPT
![Page 1: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/1.jpg)
@himskim
![Page 2: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/2.jpg)
Cppcon 2016 Keynote Bjarne Stroustrup
![Page 3: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/3.jpg)
VS 2015? 좋겠죠근데 우린 못바꿔요
![Page 4: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/4.jpg)
백만스물두
![Page 5: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/5.jpg)
![Page 6: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/6.jpg)
• Native Multi-targeting
• Round-tripping
![Page 7: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/7.jpg)
https://msdn.microsoft.com/ko-kr/library/dn986839.aspx
![Page 8: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/8.jpg)
Development Cycle
![Page 9: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/9.jpg)
Edit
Build
Debug
![Page 10: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/10.jpg)
Refactoring
Code generation
Quick Fixes
Intellisense
![Page 11: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/11.jpg)
https://visualstudiogallery.msdn.microsoft.com/
![Page 12: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/12.jpg)
![Page 13: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/13.jpg)
![Page 14: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/14.jpg)
Demo
![Page 15: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/15.jpg)
Edit
Build
Debug
![Page 16: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/16.jpg)
"Within C++ is a smaller, simpler, safer language struggling to get out.“
- Bjarne Stroustrup
![Page 17: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/17.jpg)
Major design decision
![Page 18: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/18.jpg)
C+
+1
7
constexpr Expression SFINAE Two-phase lookup
Variable templates Extended constexpr
NSDMI for aggregates
coroutines modules concepts Nested namespace Folded expressions
![Page 19: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/19.jpg)
Compile Fast & Link Fast
Generate Fast & Secure Code
![Page 20: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/20.jpg)
• 더욱빨라진 Whole Program Optimized builds
![Page 21: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/21.jpg)
• 링커개선및신규옵션제공680
138
84
573
68
61
8
327
K I N E C T S P O R T S R I V A L ( X B O X O N E ) F O R Z A ( X B O X O N E ) D E S T I N Y ( X B O X O N E ) C H R O M E
CLEAN LINK TIMES WITH VS2015 (SEC)
VS2013 RTM VS2015 RTM
• /Debug:fastlink
• /Zc:inline
• Incremental linking for static libraries
• Linker multi-threading
VS2015 링커신규옵션
![Page 22: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/22.jpg)
Vectorization of control-flow / Bit-test merging
void blackscholes(float* input, int *signArray, int n) {
for (int i = 0; i < n; i++) {float InputX = input[i];int sign;if (InputX < 0.0f) {
InputX = -InputX;sign = 1;
} else {sign = 0;
}input[i] = InputX;signArray[i] = sign;
}}
mask = InputX < 0.0f ? 0xFFFFFFFF : 0;InputX = (mask & -InputX) | (~mask & InputX);sign = (mask & 1) | (~mask & 0);
Branch를제거하여최적화된코드
벤치마크 테스트 결과
300%+ 속도 개선
![Page 23: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/23.jpg)
• Loop-if unswitching
for (int i = 0; i < 100; i++)if (some_invariant_condition)
...
Source code:
if (some_invariant_condition)for (int i = 0; i < 100; i++)
...
Optimized as if:
![Page 24: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/24.jpg)
• 그외
![Page 25: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/25.jpg)
• /Guard:cf –새로운컴파일스위치
![Page 26: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/26.jpg)
• Intel Memory Protection Extension(MPX) 지원
![Page 27: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/27.jpg)
Incredibuild and Visual Studio
6:32
4:42
0:47
Visual Studio IncrediBuild(Predicted)
IncrediBuild(With Helpers*)
Ace open source 빌드벤치마크
일반적으로 10% 이상빌드속도개선
![Page 28: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/28.jpg)
• 독립설치가능한 compiler, libraries, scripts
• Standalone Compiler
• Visual Studio Code
- ext install cpptools
• Team Build Server
• Python/Node.js/Rust
독립 Visual C++ Build 도구지원http://landinghub.visualstudio.com/visual-cpp-build-tools
![Page 29: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/29.jpg)
Demo
![Page 30: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/30.jpg)
Edit
Build
Debug
![Page 31: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/31.jpg)
•
•
• Set next statement
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• PerfTips
• Integrated CPU Profiling
• Integrated Memory Profiling
•
•
![Page 32: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/32.jpg)
Demo
![Page 33: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/33.jpg)
Visual Studio 2015 Video
Visual C++ 포팅및 업그레이드가이드
Stuck on an older toolset version? Move to Visual Studio 2015 without upgrading your
toolset
Visual C++ Build Tool
Debugging Tips and Tricks for C++ in Visual Studio
C++ Edit and Continue in visual studio 2015 update
Compiler improvement in vs 2015 update 3
MFC Dynamic Dialog Layout
Speeding up the Incremental Developer Build Scenario
![Page 34: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/34.jpg)
![Page 35: VS2015 C++ new features](https://reader034.vdocuments.site/reader034/viewer/2022051710/5a68652d7f8b9ae7268b6b09/html5/thumbnails/35.jpg)