Click here to Skip to main content

Nemanja Trifunovic - Professional Profile


    Blog RSS
Born in Kragujevac, Serbia. Now lives in Boston area with his wife and daughters.
Wrote his first program at the age of 13 on a Sinclair Spectrum, became a professional software developer after he graduated.
Very passionate about programming and software development in general.
  • 24 Aug 2009: Best C++/MFC article of July 2009
  • 24 Feb 2007: Best C++/MFC article of Jan 2007

Articles 15 (Legend)
Tech Blogs 0
Messages 6,383 (Master)
Q&A Questions 0
Q&A Answers 50
Tips/Tricks 0
Comments 19


For more information on Reputation please see the FAQ.


Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege, and the given member types also gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilverAdmin
Store personal files in your account areaplatinumplatinumSitebuilder, Subeditor, Supporter, Editor, Staff
Have live hyperlinks in your biographybronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Edit a Question in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Edit an Answer in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Delete a Question in Q&AYesSubeditor, Protector, Editor, Admin
Delete an Answer in Q&AYesSubeditor, Protector, Editor, Admin
Report an ArticlesilversilversilversilverSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubeditor, Mentor, Protector, Editor, Staff, Admin
Edit other members' articlesSubeditor, Protector, Editor, Admin
Create an article without requiring moderationplatinumSubeditor, Mentor, Protector, Editor, Staff, Admin
Approve/Disapprove a pending QuestionProtector, Admin
Approve/Disapprove a pending AnswerProtector, Admin
Report a forum messagesilversilverbronzeProtector, Editor, Admin
Approve/Disapprove a pending Forum MessageProtector, Admin
Create a new tagsilversilversilversilverAdmin
Modify a tagsilversilversilversilverAdmin

Actions with a green tick can be performed by this member.

GeneralRe: Threads in Standard C++ ? PinmemberRyan Binns8-Feb-05 18:20 
GeneralRe: Threads in Standard C++ ? PinmemberAnders Dalvander9-May-05 21:09 
GeneralRe: Threads in Standard C++ ? PinmemberWREY7-Jun-05 17:58 
GeneralRe: Threads in Standard C++ ? PinmemberNemanja Trifunovic15-Jun-05 6:54 
GeneralA book: Advanced .NET Programming PinmemberNemanja Trifunovic22-Sep-04 7:51 
GeneralSFU vs Cygwin PinmemberNemanja Trifunovic21-Sep-04 7:12 
GeneralStatic classes in C# 2.0 PinmemberNemanja Trifunovic29-Aug-04 12:47 
GeneralForofobia PinmemberNemanja Trifunovic20-Aug-04 3:54 
I rarely take part in Soapbox forum discussions, and generally find them boring. However, this rant was really great - a sort of Declaration of Independence from STL - style programming:
Peterchen[^] seems to be pretty angry with the trend in modern C++ to replace loops with STL-like algorithms. He says, among other things:

Look the framework we have to build to minimise (not remove, just "minimise") writing loops:
iterators. const. unidirectional. bidirectional. reverse iterators. const or not. iterator adaptor. functors. binders. composers. bind. function. lambda library. anything I forgot? most likely. We need to templatize like hell, bending the compiler to a point where we are happy it makes it through our code alive - and when not, we don't dare ask for sensible error messages. To avoid what?
It's a loop, for god's sake. It's not a bear trap, it's not the infamous goto-spaghetti mess, it's not a terrorist nuke we have to keep out of our code whatever sacrifice of sanity is necessary.
What can go wrong in a loop?
- you forget to increment
- you are off by one
- you invalidate the container or the iterator
The first requires some discipline, the second some basic calculus training, and the third heaven forbid thinking! whoo!
Resolution: From now on I'll call all algorithm aficionados loopophobics. Yes, Scott Myers, this includes you.

Some of the comments from the fellow programmers:
after a certain point, trying to turn C++ into Haskell just creates confusion for anyone unfortunate enough to have to maintain the code.
for loops are way too readable, the whole purpose of STL and especially Boost is to enable the production of completely unreadable code that will utterly confuse the slack-jawed imbecile who only knows C# and is asked to maintain my C++ code.
This seems to be complexity for complexity's sake, or possibly just to distance itself from anything obvious non-STL

Peterchen mentioned Meyers probably because of his article STL Algorithms vs Hand-Written Loops[^] in which he generally favors the use of algorithms rather than loops.
However, I would agree with Meyers' conclusion on this matter:
In the ongoing tussle between algorithm calls and hand-written loops, the bottom line on code clarity is that it all depends on what you need to do inside the loop. If you need to do something an algorithm already does, or if you need to do something very similar to what an algorithm does, the algorithm call is clearer. If you need a loop that does something fairly simple, but would require a confusing tangle of binders and adapters or would require a separate functor class if you were to use an algorithm, you’re probably better off just writing the loop. Finally, if you need to do something fairly long and complex inside the loop, the scales tilt back toward algorithms, because long, complex computations should generally be moved into separate functions, anyway. Once you’ve moved the loop body into a separate function, you can almost certainly find a way to pass that function to an algorithm (often for_each) such that the resulting code is direct and straightforward

My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
GeneralHeron PinmemberNemanja Trifunovic12-Aug-04 4:47 
GeneralRe: Heron Pinmembercdiggins12-Aug-04 11:56 
GeneralRe: Heron PinmemberNemanja Trifunovic13-Aug-04 9:22 
GeneralRe: Heron Pinmembercdiggins13-Aug-04 9:52 
GeneralRe: Heron PinmemberMr.Prakash26-Sep-04 9:09 
GeneralRe: Heron PinmemberMystifier0028-Jan-05 19:22 
GeneralRe: Heron PinmemberNemanja Trifunovic29-Jan-05 5:58 
GeneralRe: Heron PinmemberJim Crafton14-Mar-05 5:55 
GeneralRe: Heron PinmemberNemanja Trifunovic16-Mar-05 2:48 
GeneralRe: Heron PinmemberJim Crafton16-Mar-05 4:42 
GeneralVS 2005 Non-Express Beta 1 PinmemberNemanja Trifunovic1-Aug-04 5:28 
GeneralHow to use C++/CLI? PinmemberNemanja Trifunovic23-Jul-04 3:52 
GeneralRe: How to use C++/CLI? PinprotectorNick Parker29-Jul-04 10:20 
GeneralRe: How to use C++/CLI? PinmemberNemanja Trifunovic29-Jul-04 14:58 
GeneralRe: How to use C++/CLI? PinprotectorNick Parker29-Jul-04 18:29 
GeneralMy first hands on experience with generics PinmemberNemanja Trifunovic17-Jul-04 9:41 
GeneralBad habits of "old-style" programming PinmemberNemanja Trifunovic13-Jul-04 4:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Advertise | Privacy | Mobile
Web02 | 2.8.150129.1 | Last Updated 1 Feb 2015
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid