Difference between revisions of "Relevant Developer Tutorials"

From Mudlet
Jump to navigation Jump to search
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{TOC right}}
 
= C++ =
 
= C++ =
  
Mudlet uses modern C++11 for the core functionality of the application.
+
Mudlet uses modern C++14 for the core functionality of the application.
  
For programming newbies:
+
== For programming newbies ==
 
* [https://www3.ntu.edu.sg/home/ehchua/programming/index.html#Cpp C++] - covers everything C++ basics to advanced.
 
* [https://www3.ntu.edu.sg/home/ehchua/programming/index.html#Cpp C++] - covers everything C++ basics to advanced.
  
For experienced programmers:
+
== For experienced programmers ==
 
* [https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html#zz-1. Pointers] - the core basics of C++. While you can by without needing to know the details, you'll find it really, really useful if you do.
 
* [https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html#zz-1. Pointers] - the core basics of C++. While you can by without needing to know the details, you'll find it really, really useful if you do.
 
* [https://mbevin.wordpress.com/2012/11/13/auto/ C++11] - know how to make your life easier with modern C++11.
 
* [https://mbevin.wordpress.com/2012/11/13/auto/ C++11] - know how to make your life easier with modern C++11.
  
Random reading:
+
== Helpful tools ==
 +
* [https://www.sourcetrail.com/ Source Trail] - get quick overview of an unfamiliar codebase (like Mudlet, if you're just joining here)
 +
* [https://www.draw.io/ draw.io] - Draw and share diagrams online
 +
* http://www.rexex101.com/ - test and explain your regular expressions online
 +
* http://www.rexegg.com/regex-quickstart.html - a good little cheat sheet for regex
 +
 
 +
== Support tools ==
 +
* https://www.take-a-screenshot.org/ - for all OS, so users can show their problems with ease
 +
 
 +
== Good reading ==
 
* [http://catchchallenger.first-world.info/wiki/Benchmark_for_conception#String catchchallenger wiki] - C++, QString benchmarks.
 
* [http://catchchallenger.first-world.info/wiki/Benchmark_for_conception#String catchchallenger wiki] - C++, QString benchmarks.
 
* [https://meetingcpp.com/tl_files/mcpp/2015/talks/Marc-Mutz-MC++15-Effective-Qt.pdf Effective Qt, Meeting C++ 2015] - tips for modern Qt regarding range-based for, QStrings, and the heap.
 
* [https://meetingcpp.com/tl_files/mcpp/2015/talks/Marc-Mutz-MC++15-Effective-Qt.pdf Effective Qt, Meeting C++ 2015] - tips for modern Qt regarding range-based for, QStrings, and the heap.
 +
* [https://medium.com/genymobile/how-c-lambda-expressions-can-improve-your-qt-code-8cd524f4ed9f How lambda's can improve your Qt code]
 
* https://github.com/AnthonyCalandra/modern-cpp-features/blob/master/README.md - modern C++ features
 
* https://github.com/AnthonyCalandra/modern-cpp-features/blob/master/README.md - modern C++ features
 
* https://marcmutz.wordpress.com/effective-qt/containers/ - Qt's vs standard C++ containers.
 
* https://marcmutz.wordpress.com/effective-qt/containers/ - Qt's vs standard C++ containers.
 
* http://theory.stanford.edu/~amitp/GameProgramming/ - A* tips and tricks.
 
* http://theory.stanford.edu/~amitp/GameProgramming/ - A* tips and tricks.
 
* https://www.reddit.com/r/cpp/comments/7kurp6/recommended_c_tools_for_linux_profiler_static/ - useful C++ tools that can run on Linux.
 
* https://www.reddit.com/r/cpp/comments/7kurp6/recommended_c_tools_for_linux_profiler_static/ - useful C++ tools that can run on Linux.
 +
* https://www.divio.com/blog/documentation - Create 4 kinds of documentation, each serves a different purpose
  
 
== Random tips and tricks ==
 
== Random tips and tricks ==
Line 29: Line 41:
  
 
Compiler will error and tell you the type, TTrigger*& in this example.
 
Compiler will error and tell you the type, TTrigger*& in this example.
 +
 +
[[Category: Mudlet Developer Manual]]

Revision as of 15:22, 12 November 2019

C++

Mudlet uses modern C++14 for the core functionality of the application.

For programming newbies

  • C++ - covers everything C++ basics to advanced.

For experienced programmers

  • Pointers - the core basics of C++. While you can by without needing to know the details, you'll find it really, really useful if you do.
  • C++11 - know how to make your life easier with modern C++11.

Helpful tools

Support tools

Good reading

Random tips and tricks

Determine what auto resolves to with:

 template <typename T> struct watzattype;
 void TriggerUnit::doCleanup()
 {
     for(auto & trigger : mCleanupList)
     {
         watzattype<decltype(trigger)>{};

Compiler will error and tell you the type, TTrigger*& in this example.