Development reference: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{| class="mw-collapsible mw-collapsed wikitable" | |||
! c++11 for loop using lambda | |||
|- | |||
| This for loop is clean and elegant and a perfect way to check if your compiler is ready for c++11: | |||
C++11 provides lambda functions, we should switch from iterators and functors to those | |||
but not quite yet, since we're writing cross-platform code | |||
start with trying to use this cool for_each loop with a lambda instead of the traditional for-with-increment loop: | |||
vector<int> v; | |||
for_each( v.begin(), v.end(), [] (int val) | |||
{ | |||
cout << val; | |||
} ); | |||
do not touch this tho until we can be sure that all platforms provide compatible C++11 handling | |||
max os x snow leopard does not understand the lambda function | |||
|} | |||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
! c++ stl in-memory storage of "major" objects | ! c++ stl in-memory storage of "major" objects | ||
Line 32: | Line 50: | ||
BUT... you can provide a FUNCTOR to do the job, then provide it when sorting/searching | BUT... you can provide a FUNCTOR to do the job, then provide it when sorting/searching | ||
a functor is basically a structure with a bool operator()(const MyObjectPtr* left, const MyObjectPtr* right) | a functor is basically a structure with a bool operator()(const MyObjectPtr* left, const MyObjectPtr* right) | ||
once c++11 is ready, consider using lambda functions instead | |||
|} | |} | ||
Revision as of 02:19, 1 October 2012
c++11 for loop using lambda |
---|
This for loop is clean and elegant and a perfect way to check if your compiler is ready for c++11:
C++11 provides lambda functions, we should switch from iterators and functors to those but not quite yet, since we're writing cross-platform code start with trying to use this cool for_each loop with a lambda instead of the traditional for-with-increment loop: vector<int> v; for_each( v.begin(), v.end(), [] (int val) { cout << val; } ); do not touch this tho until we can be sure that all platforms provide compatible C++11 handling max os x snow leopard does not understand the lambda function |
c++ stl in-memory storage of "major" objects |
---|
where major = need to track a large number of them in a sorted vector; they are heavily referenced outside the vector Having a coding revelation!!! OBSERVATION ONE QObjects cannot normally be copied this is by design - their copy constructors and assignment operators are private why? A Qt Object... might have a unique QObject::objectName(). If we copy a Qt Object, what name should we give the copy? has a location in an object hierarchy. If we copy a Qt Object, where should the copy be located? can be connected to other Qt Objects to emit signals to them or to receive signals emitted by them. If we copy a Qt Object, how should we transfer these connections to the copy? can have new properties added to it at runtime that are not declared in the C++ class. If we copy a Qt Object, should the copy include the properties that were added to the original? in other words, a QObject is a pretty serious object that has the ability to be tied to other objects and resources in ways that make copying dangerous isn't this true of all serious objects? pretty much OBSERVATION TWO if you have a vector of objects, you often want to track them individually if you use a vector of pointers, you can keep the pointer and not worry about vector reallocations - perfect OBSERVATION THREE STL provides everything you need to keep vectors of your pointers, iterate thru them, etc. for a vector of any substantial size, you want to keep objects sorted so you can find them quickly that's what my sorted_vector class is for following STL practices, to get sorting, you have to provide operator< for whatever is in your vector BUT... you are not allowed to do operator<(const MyObjectPtr* right) because it would require a reference to a pointer which is not allowed BUT... you can provide a FUNCTOR to do the job, then provide it when sorting/searching a functor is basically a structure with a bool operator()(const MyObjectPtr* left, const MyObjectPtr* right) once c++11 is ready, consider using lambda functions instead |
c++ stl reverse iterator skeleton |
---|
From SGI...
reverse_iterator rfirst(V.end()); reverse_iterator rlast(V.begin()); while (rfirst != rlast) { cout << *rfirst << endl; ... rfirst++; } |
c++ stl reading a binary file |
---|
c/c++ gdb debugging |
---|
(gdb) help break Set breakpoint at specified line or function. Argument may be line number, function name, or "*" and an address. If line number is specified, break at start of code for that line. If function is specified, break at start of code for that function. If an address is specified, break at that exact address. With no arg, uses current execution address of selected stack frame. This is useful for breaking on return to a stack frame. Multiple breakpoints at one place are permitted, and useful if conditional. Do "help breakpoints" for info on other commands dealing with breakpoints. |
ddd gives you a front end. I need to use it more, compare to other options |
php debugging |
---|
Tail these:
tail -f /var/log/apache2/sitelogs/thedigitalage.org/ssl_error_log tail -f /var/log/ampache-tda/ampache.(today).log |
This leads to too much noise, not needed...
emacs /etc/php/apache2-php5.3/php.ini display_errors = On /etc/init.d/apache restart |
java eclipse project layout format | |||
---|---|---|---|
* Eclipse workspace (can also be the top version-control folder) | ** project folder (typically one "app" that you can "run") | *** package(s) (named something like "com.developer.project.application") | **** classes (each class is contained in one file) |
mediawiki collapsible skeleton |
---|
mediawiki collapsible example |
---|
DJs are kept on the active Active djs are maintained Active djs are maintained Active djs are maintained Active djs are maintained Active djs are maintained Active djs are maintained djs list when both the server and the dj are enabled. |
All djs are shown in the prefs djs list.
Line 2 Line 3 All djs are shown in the prefs djs list.All djs are shown in the prefs djs list.All djs are shown in the prefs djs list.All djs are shown in the prefs djs list.All djs are shown in the prefs djs list. cd /var/www/localhost/htdocs/mediawiki emacs LocalSettings_redirector.php (to hardcode each site) php maintenance/update.php (repeat for each site) emacs LocalSettings_redirector.php (to reset dynamic behavior) |
Web Services |
---|
Firefox Addon development |
---|