Kurs i

C++ 11/14 for C++ Programmers

Vi är själva lyriska över hur C++ utvecklats som språk och systemutvecklingsplattform de senaste åren. Med nya standarden C++14 (och snart C++17) har C++ blivit en stark utmanare till hippa moderna språk. C++ har egenskaper som duck-typing, lambda uttryck och ett rikhaltigt standardbibiliotek, allt exekverat i en hastighet som alla andra språk inte ens kan drömma om.

Denna kurs vänder sig till dig som redan arbetar i C++, men vill förstå och sätta dig in vad begreppet Modern C++ verkligen innebär.

Vi kan inte motstå att citera Bjarne Stroupstrup , språkets upphovsman när han uttalar sig om detta:

Within C++ is a smaller, simpler, safer language struggling to get out.

Där han sätter fokus på att

...code that is statically type safe, has no resource leaks, and catches many more programming logic errors than is common in code today. And it will run fast.
Detta får du lära dig på kursen
  • Använda duck-typing med auto och Java-style for-each loopar
  • Fördjupa sig i tillämpning av lambda uttryck
  • Förstå, använda och själv realisera move semantics
  • Använda smarta pekare
  • Använda reguljära uttryck (regex) för sökning och substitution
Innehåll

Background and Overview

Några ord om hur språket utvecklats och vad som avses med "Modern C++".

Syntactic improvements of the language

Här går vi igenom ett flertal av de syntaxförbättringar C++ har fått
  • Duck-typing with auto
  • For-each loop in Java style
  • Type-safe handling of null pointers
  • Static initialization lists and how they have improved the container types
  • Java-style member initialization
  • Enforcing compiler generated members
  • Deleting compiler generated members
  • Improved exception class support in the libray

Lambda Expressions

Med införandet av lambda uttryck har C++ definitivt tagit steget in bland moderna och hippa programspråk. Lite kul är det visst att C++ hann före Java med att införa detta viktiga språkbegrepp.
  • Lambda syntax
  • Passing free variables by reference or value
  • Functions taking lambdas as parameters and/or returning lambdas

Move Semantics

Från ett prestanda-perspektiv är move-semantics enormt intressant, eftersom det innebär att onödiga datakopieringar helt kan undvikas.
  • What is move semantics anyway
  • Understanding rvalue references
  • How to refer to a temporary expression
  • Move constructor and move assignment operator
  • Case studies

Enhanced Templates

Mallbegreppet i C++ har blivit malligare (;-)
  • Variadic templates
  • Using tuples
  • Arbitrary number of parameters in a type-safe way
  • Using decltype
  • What is Type Traits
  • Case studies using type traits

Regex support

Här går vi igenom det sedan länge efterlängtade stödet för reguljära uttryck
  • Multi-line and regex string literals
  • What is a regex
  • The regex support in modern C++
  • Matching text data to patterns
  • Searching using patterns
  • Replacing text fragments using patterns
  • Using regex iterators
  • Typical use cases
  • Splitting and joining strings

Date-times and durations

Stödet för att hantera och formattera datum, tider och intervall har blivit mycket bättre
  • Date-times
  • Durations
  • Time literals
  • Clocks
  • Computing the elapsed time of a set of statements
  • Date formatting

Random Number Generation

Numera finns ett brett urval av stokastiska funktioner man kan basera slumtalsgenerering på
  • Random number engines
  • Distributions
  • Sample usages

Smart pointers

Användning av smarta pekare i C++ inför en form av automagisk skräpsamling. Här går vi igenom vad begreppet är, samt hur du använder de som finns i standardbibliotektet.
  • What is a smart pointer, and why should I bother
  • Basic implementation
  • To delete or not to delete, that's the question
  • Three pointer semantics, to adress the questions above
  • Using std::unique_tr
  • Using std::shared_ptr

More Container Types

Här går vi igenom de nya container-typer som lagts till i standardbiblioteket
  • Static array
  • Hash sets and maps
  • Single-linked list
  • Adapter functions such as begin/end, size/empty, data, next/prev

Threads Support

Här går vi kortfattat igenom det omfattande stödet för threads programmering i nya C++ och hänvisar för övrigt till vår kurs som handlar helt om threads programmering.
  • Class thread
  • Mutex types and mutex wrappers
  • Handling timeouts
  • Condition variables
  • Future and promises
  • Asynchronuos tasks
SnabbFakta
Namn
C++ 11/14 for C++ Programmers
Längd
2 dagar
Nivå
Intermediate
Målgrupp
Erfarna C++ programmerare som vill lära sig modern C++
Förkunskaper
Vana vid att programmera i klassisk C++
Teknisk miljö
  • C++14 compliant C++ compiler
  • A decent IDE such as Jetbrains CLion
  • Ubuntu Linux or Cygwin
Relaterade Kurser
Schemalagd Kurs

Pris

14000 kr + moms

Vi ger 20% rabatt för tillkommande deltagare från samma företag på samma kurstillfälle. Läs mer om vår samma-företags-rabatt.

Aktuella KursDatum
Startdatum Plats
22 maj 2017 Stockholm City
26 jun 2017 Stockholm City
Företagsintern Kurs

Om du beställer en företagsintern kurs kommer vi till er och håller kursen i era egna lokaler. Priset bestäms av vår prismodell och baseras på antalet kursdagar, antalet deltagare, samt i förekommande fall resa och logi.

Prisexempel för NN deltagare

PPP kr + moms

Antal
Område

Läs mer om vår prismodell och beställningsvillkor.