77 c++IV paperTigers

Avoid spending too much time on this list…. These c++ topics appeared non-trivial (perhaps daunting, intimidating) for years, until I started cracking the QnA interviews. Then I realized in-depth expertise isn’t required.

  1. TMP
  2. make_shared
  3. std::forward()
  4. fwd declaration
  5. … these are some new items to be sorted…
  6. — real tigers i.e. non-trivial nlg is quizzed
  7. [A] CRPP, SFINAE — real tigers. I got asked about these around 5 times, sometimes in-depth
  8. socket: non-blocking
  9. — Now the paper tigers
  10. open source or commercial instrumentation for memory, dependency instrumentation. See blogpost to Ashish
  11. [s] what debuggers and memory leak detectors are you familiar with?
  12. [a] singleton, factory, pimpl and other design patterns
  13. [s] c++ regex
  14. [s] stream I/O and manipulators
  15. —sockets # many more paper tigers to be listed
  16. udp, multicast, select()
  17. [s] socket buffers
  18. [a] byte alignment
  19. endianness
  20. TCP flow control
  21. TCP handshake and disconnect
  22. ack numbers
  23. partial send
  24. close() vs shutdown()
  25. — STL # many more paper tigers to be listed
  26. [s] STL binders
  27. [s] STL allocators
  28. adapters for containers, iterators and functors
  29. [a] iterator invalidation rules
  30. [s] how is deque different from a vector
  31. RBtree
  32. —concurrency # many more paper tigers to be listed
  33. [A] atomic types
  34. pthread functions
  35. [A] IPC mutex
  36. mutex in shared memory
  37. recursive lock
  38. read-write lock
  39. what if a thread dies while holding a lock?
  40. [s] RAII scoped lock
  41. — multi-file build
  42. forward class declarations (as required in pimpl) and their limitations
  43. [s] C/C++ integration, extern-C — heavily quizzed, but no in-depth
  44. [s] what C features are not supported by c++ compiler
  45. circular dependency between libraries — confusing. real tiger but seldom quizzed
  46. [As] shared lib vs static lib
  47. —integration and data exchange
  48. [A] shared memory
  49. [A] CORBA, RPC
  50. [a] serialization in compact wire format — only primitive data types!
  51. [s] OS system calls vs std library (glibc) — sounds daunting to most developers
  52. —exception
  53. catch by ref or by value or by pointer?
  54. [s] exception guarantees
  55. [s] stack unwinding due to exception
  56. throwing destructors — various questions
  57. —memory
  58. which part of memory do static data members go? How about file scope static variables? How about global variables
  59. [s] preventing heap/stack allocation of my class
  60. [s] custom new/delete,  set_new_handler()
  61. [s] intrusive smart ptr, weak_ptr
  62. [s] ref counting
  63. custom deleter in shared_ptr
  64. [s] reinterpret_cast  # always on pointers
  65. [A] custom allocators
  66. [A] free list in the free store
  67. what if you call delete on a pointer that’s created by array-new?
  68. placement new
  69. out-of-memory in operator-new
  70. —inheritance
  71. dynamic_cast
  72. [A] multiple inheritance
  73. [s] virtual inheritance… which base class ctor gets called first? See https://isocpp.org/wiki/faq/multiple-inheritance#mi-vi-ctor-order
  74. [a] slicing problem
  75. [a] private inheritance
  76. [s] pure virtual
  77. —other low level topics
  78. [s] setjmp, jmp_buf… See the dedicated blog post jmp_buf/setjmp() basics for IV #ANSI-C
  79. [s] cpu cache levels
  80. [s] translation lookaside buffer
  81. [s] what data structures are cache-friendly?
  82. [a] memcpy, memset
  83. [s] ++myItr vs myItr++ how are they implemented differently?
  84. —other language features
  85. [s] RAII
  86. [s] operator-overload
  87. [A] template specialization — part of the STL fabric but largely transparent
  88. [s] ptr to member (function) — seldom used outside library code. I tried the syntax in my binary tree serializer
  89. [A] std::forward() std::move(), rvalue-ref
  90. const and constexp
  91. [a] lambda with capture
  92. [a] double-pointer .. why do you need it?
  93. —-
  94. [s == shallow book knowledge is enough]
  95. [a == actually not that deep, IMHO]
  96. [A == actually deep topic]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s