• 0

C++ Compiler of choice


Question

Hey all, lately I've been wanting to learn a programming language and decided I'd like to learn C++, I've had suggestions about using Dev-C++ but I've also heard some pretty dodgy reviews due to it not being updated since 2005 and doesn't compile exes properly in some cases. I have Visual C++ 6 already installed and was wondering if this would be a better option. Also please state any better choices and why you think they're better; any tips to get started would also be apprectiated.

Thank you

-Alex

Link to comment
https://www.neowin.net/forum/topic/992110-c-compiler-of-choice/
Share on other sites

Recommended Posts

  • 0

K&R (Second Edition) is ANSI C (c89). If you don't know that, then there is no hope for you. Do do know that K&R created the C language right?

I know who implemented the FIRST version of the C-language. You on the other hand seem to have no idea about C! K&R was NEVER an official standard! The standard was defined years later by the ISO (and ANSI) and is INCOMPATIBLE with the mess you call K&R. If you find any compiler that accepts stuff like

Func(i)
int i
{
...
}

You are using anything but the standard language!

If you want a definitive language reference, then Stroustrup, the creator of the C++ language, is most likely the best source. If you have a real criticism of my book suggestion, then i'd like to hear it.

1. Not your book

2. It's definatly not aimed at anyone who wants to learn the language!

MSVC is renowned for it's poor standards compliance:

http://stackoverflow.com/questions/1599960/visual-c-standards-compliance

A year old and no longer true?

GCC implements the C++ standard, just like every other compiler. However, there are degrees of compliance, and MSVC has a horrible history. Do you really want to write code in MSVC that compiles yet behaves differently or fails to compile with other compilers? Risky business writing code in MSVC if you want any kind of portability and deterministic behaviour.

LOL!!

There's only two things to say:

1. You have no idea about the standard

2. You spread FUD about MSVC

Superceded? Have you heard of ANSI C, aka C89, or standard C! Most C code is written in C89, not C99, and K&R Second Edition, is based on ANSI C. Have you ever even written any C code? If you had, you would have known this.

Again: K&R was never a standard. The ANSI and ISO didn't give a f*** about compatiblity with the mess Keith and Richards designed. Instead the designed a language that actually works without quirks. So yeah, even ANSI-C is incompatible with K&R?

Evidence? Thought not. Spurious claims once again. But I digress, we're getting off topic and clogging this thread up.

You may prove instead where MSVC is any worse than GCC?

  • Like 2
  • 0

At least MSVC makes some efforts to make its error messages meaningful, and understanding your errors is very important when learning a language.

#include <string>
#include <map>

using namespace std;

int main() {
    map<string, string> a(3);
}

MSVC 10:

main.cpp
1>(...)\main.cpp(7): error C2664: 'std::map<_Kty,_Ty>::map(const std::map<_Kty,_Ty> &)' : cannot convert parameter 1 from 'int' to 'const std::map<_Kty,_Ty> &'
1>          with
1>          [
1>              _Kty=std::string,
1>              _Ty=std::string
1>          ]
1>          Reason: cannot convert from 'int' to 'const std::map<_Kty,_Ty>'
1>          with
1>          [
1>              _Kty=std::string,
1>              _Ty=std::string
1>          ]
1>          No constructor could take the source type, or constructor overload resolution was ambiguous
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

GCC 4.4.1:

(...)\Main.cpp: In function 'int main()':
(...)\Main.cpp:7: error: no matching function for call to 'std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::map(int)'
d:\program files (x86)\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/stl_map.h:170: note: candidates are: std::map<_Key, _Tp, _Compare, _Alloc>::map(const std::map<_Key, _Tp, _Compare, _Alloc>&) [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >]
d:\program files (x86)\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/stl_map.h:159: note:                 std::map<_Key, _Tp, _Compare, _Alloc>::map(const _Compare&, const _Alloc&) [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >]
d:\program files (x86)\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/stl_map.h:150: note:                 std::map<_Key, _Tp, _Compare, _Alloc>::map() [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >]
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings

  • 0

Superceded? Have you heard of ANSI C, aka C89, or standard C! Most C code is written in C89, not C99, and K&R Second Edition, is based on ANSI C. Have you ever even written any C code? If you had, you would have known this.

I thought you were talking about the original K&R C book, which refers to the K&R standard. It has been superceded by ANSI C, as we both know.
MSVC is renowned for it's poor standards compliance
GCC doesn't support "export template" either. And the other issues are just a few minor points. While VC6 is renowned for its poor standards compliance, the same cannot be said of more recent versions. If standards compliance is really that important for you, I suggest you check out Comeau.
  • 0
I love Neowin, I really do. Where else can someone post a simple question about a compiler and get the whole breakdown of ANSI and standards compliance in 2 pages? ROFL

Poor guy, now we're going to make him go write Pascal or Fortran. I hope you're happy :p

Shhhhhh, you'll start an argument about Delphi XE vs FreePascal/Lazarus. I wouldn't mention Prism or Fortran.NET either :D

  • 0

GCC doesn't support "export template" either. And the other issues are just a few minor points. While VC6 is renowned for its poor standards compliance, the same cannot be said of more recent versions. If standards compliance is really that important for you, I suggest you check out Comeau.

It goes a bit beyond that. Case in point:

When I first started out with C, I was doing most of my work in Visual Studio, but was required to have it compile and run on a Linux box. Everything was working fine on MSVC, but I would get a lovely seg fault after running it through GCC. After running it through valgrind, it turned out that I had a one off error in one of my strcopys, which was copying into a malloced array large enough for the string, but not the added null delimiter.

MSVC compiled and ran like nothing was wrong. GCC was strict about that sort of thing and compiled and through a seg fault.

Anyway, as far as C++ compilers, it doesn't make much difference in most cases. GCC and MSVC will both do a fine job. If you just need a compiler and not an IDE, I would go with GCC; MSVC requires a lot of flags that you generally don't notice in the IDE.

  • 0

We're not trying to push any licensing ideology here, just helping someone learn and experiment with the C++ language. Since he's using Windows, what will do the best job is Visual Studio.

I just thought I should let you know I'm not restricted to windows, I'm dual-booting windows and Ubuntu on my laptop.

  • 0

This has to be said, I have code::blocks, and I write the 'Hello World!' code and it all worked out fine.

I tried the same code in gedit and saved it as helloworld.cpp

the code I used:

#include <iostream>
using namespace std;

int main () 
{
cout << "Hello! What is your name?";
return 0;
}

in Code::Blocks, worked fine, where as when I tried to execute it in Linux Mint with the command ./helloworld.cpp I got the result:

 Linuxmint bin # ./hello world.cpp
./helloworld.cpp: line 2: using: command not found
./helloworld.cpp: line 4: syntax error near unexpected token '('
./helloworld.cpp: line 4: 'int main ()'
linuxmint bin#

  • 0

Codeblocks worked because it performs the compilation for you.

You're attempting to execute the cpp file, rather than running the executable that the code is compiled into.

If you have g++ you should be able to do

g++ helloworld.cpp -o helloworld

followed by

 ./helloworld

to run it.

  • 0

Well the C++ language is the same no matter the IDE. Correct? just download a different IDE, you'll seem amazing to your tutor with all your stuff working :p

No necessarily different compilers that come with different IDEs will implement different specs of the C++ language.

They could implement up to C++98, 03 or 11, or portions of those.

Then it all gets very confusing when you realise that 11 being brand new is barely implemented (this is the case in MSVC. GCC on the other hand has a good portion of it done).

It gets even worse when you consider implementations of C. For instance MSVC didn't have stdint.h / cstdint until 2010 and there are no plans to provide some C99 features

  • 0

I'm sorry, but I have to call BS on that statement. Microsoft compilers are no more optimised than any others that run on Windows. The difference compared to GCC is that GCC is standards compliant and MSVC is not, just the same way as IE is less standards compliant then other web browsers. MSVC is also proprietary, closed source, and locked down to Windows only.

I'm sorry, but I have to refer to that statement as illogical. Microsoft is quite standards compliant, no less than any GNU/Linux alternative that you can find. IE 9 and the preview version of 10 are EXTREMELY standards compliant, so I am also finding your statement to be even more on the irrational spectrum.

As for IE being less standards compliant, IE supports CSS standardizations such as the

border-radius

as opposed to other so-called "open source" browsers like Mozilla Firefox and Google Chrome, which took much longer to support the

border-radius

property, and instead used a proprietary prefix in front of it, such as

moz-

or

webkit-

. This same dilemma also happened with

box-shadow

and

opacity

. Finally, at least now all or nearly all browsers support the property in its native format. However, for a while, they did not, when IE9 was one of the first browser to do so.

Oh, and should Microsoft be ashamed that they only make Visual Studio for Windows? Should Apple be ashamed that they only make Xcode available for Mac? No. Its their product, and each group as every right to enable it to work on their respective platforms. Just because they don't want to make their products for the less-than-one-percent of Linux users on the Earth does not mean that their products are lacking in quality. If anything, most GNU/Linux/FOSS software is severely lacking in quality. Trust me, I've used a great deal of software, and anything beats using GNU/Linux/FOSS crapware.

The fact is, you are just being anti-Microsoft here, and simply assuming that Visual Studio and any other Microsoft product is terrible simply because it is not open-source. If Visual Studio was open-source, you would be praising it constantly, and you know that is true. Your opinion is backwards to reality, and reflects your ignorance.

  • 0

so now I need to choose which language within C++ I want to learn lol

At the base level, C++ is C++, regardless of platform. For the most basic programs, what you write for one compiler will compile fine with the other. Don't worry about these kinds of things until you get to more advanced stuff, just make sure you get an up to date compiler/IDE combo, and you'll be fine.

I'm sorry, but I have to refer to that statement as illogical. Microsoft is quite standards compliant, no less than any GNU/Linux alternative that you can find. IE 9 and the preview version of 10 are EXTREMELY standards compliant, so I am also finding your statement to be even more on the irrational spectrum.

As for IE being less standards compliant, IE supports CSS standardizations such as the

border-radius

as opposed to other so-called "open source" browsers like Mozilla Firefox and Google Chrome, which took much longer to support the

border-radius

property, and instead used a proprietary prefix in front of it, such as

moz-

or

webkit-

. This same dilemma also happened with

box-shadow

and

opacity

. Finally, at least now all or nearly all browsers support the property in its native format. However, for a while, they did not, when IE9 was one of the first browser to do so.

As for IE being less standards compliant, IE supports CSS standardizations such as the

border-radius

as opposed to other so-called "open source" browsers like Mozilla Firefox and Google Chrome, which took much longer to support the

border-radius

property, and instead used a proprietary prefix in front of it, such as

moz-

or

webkit-

. This same dilemma also happened with

box-shadow

and

opacity

. Finally, at least now all or nearly all browsers support the property in its native format. However, for a while, they did not, when IE9 was one of the first browser to do so.

Oh, and should Microsoft be ashamed that they only make Visual Studio for Windows? Should Apple be ashamed that they only make Xcode available for Mac? No. Its their product, and each group as every right to enable it to work on their respective platforms. Just because they don't want to make their products for the less-than-one-percent of Linux users on the Earth does not mean that their products are lacking in quality. If anything, most GNU/Linux/FOSS software is severely lacking in quality. Trust me, I've used a great deal of software, and anything beats using GNU/Linux/FOSS crapware.

The fact is, you are just being anti-Microsoft here, and simply assuming that Visual Studio and any other Microsoft product is terrible simply because it is not open-source. If Visual Studio was open-source, you would be praising it constantly, and you know that is true. Your opinion is backwards to reality, and reflects your ignorance.

Historically, Microsoft have been very choosy about what standards they implement, and the extent to which those standards get implemented. No-one can argue that 10 years ago Microsoft's support for standards was crap across the board, and their standards support in the web arena was poor until as recently as IE8, which was 2 years ago. Given these facts, I think it's quite forgiveable for people to be weary of using the words Microsoft and Standards Compliance in the same sentence. Things are good these days, but as the saying goes: "fool me once...".

Your example with regards to the CSS border-radius property is completely wrong by the way. Vendor prefixes are encouraged while implementing incomplete CSS standards. -moz-border-radius and -webkit-border-radius exist(ed) because the CSS3 standard had not at the time fully defined how a border corner radius should be declared, therefore vendor prefixes were used to remind developers "This is a vendor specific property, the final implementation of this CSS property may not be of this format". By the time Microsoft finally got around to implementing border-radius, the definition was all but finalized, and the vendor predix was not required. IE9 was also not "one of the first" to support border-radius and box-shadow without a prefix, as it has been supported since the initial Firefox 4 betas in October last year, and in Chrome versions from at least January 2010.

  • 0

so now I need to choose which language within C++ I want to learn lol

As far as specs go, you don't need to worry, as Majesticmerc pointed out. The latest versions of GCC and MSVC support C++03, and partially C++11. No need to bother with C++11 features at the point you're at, and in any case it's relatively unimportant changes.

However in a deeper sense there are several languages in the C++ language, as you can learn by reading Meyer's Effective C++:

  • C
  • Object-Oriented C++
  • Template C++
  • STL

  • 0

I've downloaded Bjarne's C++ third edition ebook yesterday, which I'm going to start studying tomorrow and learn from, 967 pages, should be a good read :p

And the C++89, 03, 11, 99 etc means nothing to me atm lol just random numbers :p

I've downloaded Bjarne's C++ third edition ebook yesterday, which I'm going to start studying tomorrow and learn from, 967 pages, should be a good read :p

And the C++89, 03, 11, 99 etc means nothing to me atm lol just random numbers :p

  • 0

I've downloaded Bjarne's C++ third edition ebook yesterday, which I'm going to start studying tomorrow and learn from, 967 pages, should be a good read :p

And the C++89, 03, 11, 99 etc means nothing to me atm lol just random numbers :p

Stroustrup's book is good reference material but not a good tutorial. I'd recommend something like Stephen Prata's C++ Primer.

The numbers in question are years. So C++03 is the 2003 revision of the specification. I didn't even know different specifications existed for quite a long time actually :p

  • 0

oh wow, so C++ has been around since 89, quite daunting that the language is older than me lol

C++ is a rather complicated beast for a beginning programmer. You have to learn C, C++ OO extensions, the STL etc. It's not all bad, but it will take far longer to master than plain C.

Wikipedia provides a few interesting quotes:

- Richard Stallman criticizes C++ for having ambiguous grammar and "gratuitous, trivial, incompatibilities with C (...) that are of no great benefit".

- Linus Torvalds has said, "C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it".[35]

C is far simpler and only has two standards, c89 and c99, of which c89 is the most prevalent. You can then ignore the ugly STL syntax until later. I would suggest starting with C first. It will make learning C++ easier down the road.

In all honesty, If I want to do some OO development these days, I'd much rather use a modern language such as Python or Java.

  • 0

I would suggest starting with C first. It will make learning C++ easier down the road.

No, it won't make learning C++ easier since they are practically the same language except for the STL, OO, and a few other bits. Learning C, then going to C++ is pointless especially since you will have gotten used to the C way of doing things and then have to remember to switch to the C++ way of doing things (like using new instead of malloc, cout instead of printf, etc).

  • 0

Your example with regards to the CSS border-radius property is completely wrong by the way. Vendor prefixes are encouraged while implementing incomplete CSS standards. -moz-border-radius and -webkit-border-radius exist(ed) because the CSS3 standard had not at the time fully defined how a border corner radius should be declared, therefore vendor prefixes were used to remind developers "This is a vendor specific property, the final implementation of this CSS property may not be of this format". By the time Microsoft finally got around to implementing border-radius, the definition was all but finalized, and the vendor predix was not required. IE9 was also not "one of the first" to support border-radius and box-shadow without a prefix, as it has been supported since the initial Firefox 4 betas in October last year, and in Chrome versions from at least January 2010.

Yes, that is correct. Vender prefixes are encouraged during periods of incomplete CSS standards. However, my post is correct because IE9 was technically the first browser to implement a non-proprietary standard of rendering such things as border-radius and box-shadow. I should have been more specific, however, and referred to the very first IE9 builds, way back to May/June of 2010. I remember the IE9 Platform Previews and Betas having the first non-proprietary support for some CSS standards, as I had the original builds for testing on my computer...

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • How to Do More with Less: Future-Proofing Yourself in an AI-driven Economy —was $28 now FREE by Steven Parker Claim your complimentary copy (worth $28) of "How to Do More with Less: Future-Proofing Yourself in an AI-driven Economy" for free, before the offer ends on June 30. Description In today’s workplace, headlines about artificial intelligence can feel overwhelming. With headlines swinging between promises of utopia and warnings of mass unemployment, for most knowledge workers, the truth feels unclear. In this book, Sharon Gai cuts through the noise. Drawing from real-world examples and global insights, she explains how AI is reshaping the way we work—without hype or fearmongering. Instead of choosing between blind optimism or outright pessimism, she offers a practical, balanced perspective that helps readers make sense of the rapidly evolving AI landscape. You’ll learn how to: Reskill and future-proof your career in the face of AI disruption Identify which parts of your role can be automated, and which require human creativity and judgment Use proven frameworks to evaluate AI’s impact on your work and your organization Apply actionable tips and tools to boost productivity, make smarter decisions, and do more with less Gain clarity as a parent, leader, or professional navigating what this means for the next generation Whether you’re an employee anxious about your future, a parent concerned about your children’s opportunities, or a leader managing a lean team with tight budgets, this book provides the strategies and mindset you need to adapt so you can stop worrying and start preparing. How to download for free Please ensure you read the terms and conditions to claim this offer. Complete and verifiable information is required in order to receive this free offer. If you have previously made use of these offers, you will not need to re-register. Was $28, but is now FREE | Below free offer link expires on June 30. How to Do More with Less: Future-Proofing Yourself in an AI-driven Economy The below offers are also available for free in exchange for your (work) email: The Vibe Coding Playbook: Building Your Tech Business with AI ($35 Value) FREE - Expires 6/23 The Persuasion Engine: How Any Business Can Use AI-Powered Neuromarketing to Understand and Win Customers ($28 Value) FREE - Expires 6/24 How to Do More with Less: Future-Proofing Yourself in an AI-driven Economy ($28 Value) FREE - Expires 6/30 Cloud Security Fundamentals: Building the Foundations for Secure Cloud Platforms ($131.95 Value) FREE - Expires 7/1 The Complete Free AI Learning: Master ChatGPT, Claude, Gemini & More ($21 Value) FREE How to Build an AI Design Workflow with Gamma ($21 Value) FREE The Ultimate Linux Newbie Guide – Featured Free content Python Notes for Professionals – Featured Free content Learn Linux in 5 Days – Featured Free content Quick Reference Guide for Cybersecurity – Featured Free content We post these because we earn commission on each lead so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. Other ways to support Neowin The above deal not doing it for you, but still want to help? Check out the links below. Check out our partner software in the Neowin Store Buy a T-shirt at Neowin's Threadsquad Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: An account at Neowin Deals is required to participate in any deals powered by our affiliate, StackCommerce. For a full description of StackCommerce's privacy guidelines, go here. Neowin benefits from shared revenue of each sale made through the branded deals site.
    • Microsoft admits one of the most crucial Outlook features is currently broken by Sayan Sen Microsoft is making some decent progress when it comes to Windows 11. Recently we have confirmed reports of some rather useful improvements landing in the next version of the OS, 26H2, wherein GPU driver TDR crashes may finally be fixed, plus the company is also allowing users to disable web content on the Search. On the Outlook front though things have not been so rosy. Last month in May we reported several problems affecting basic functionalities on the app. These included a problem where documents would open blank or corrupt themselves. Following that, Quick Steps, a very useful feature, would no longer work correctly, and finally, Microsoft acknowledged a problem wherein images would fail to load up properly inside the email. Microsoft had resolved those bugs later and almost exactly a month after we reported on them, the company has now admitted a new similarly basic issue, this time on Macs. Users recently started noticing that Outlook would no longer display email threads properly as the original message itself was not displayed. An affected user Tsoumpas, C (ngmb) nicely described the problem in a forum post they made on Microsoft's site. They wrote: "Description of the issue: After updating Outlook for Mac [Version 16.110 (26061317)] on 18/6/2026, replying to any email no longer includes the original message in the reply window. Prior to the update, replies correctly contained the original email text below my response. Expected behavior: The original message should be included in the reply, as in previous Outlook versions and according to the configured reply settings. Actual behavior: The reply window contains only a blank composition area (or only my response), with none of the original email text included." Obviously this must be a highly frustrating for users as noted by several in that thread. The post, at the time of writing, has also been upvoted by more than 40 users indicating that is a fairly widespread bug. Thankfully Microsoft seems to have acknowledged the problem right around that time as it opened a new issue on its official website. In the support article, the company recommends switching to Outlook for Mac from the legacy app, where the problem appears to be happening.
    • PotPlayer 260622 by Razvan Serea PotPlayer is an extremely light-weight multimedia player for Windows. It feels like the KMPlayer, but is in active development. Supports almost every available video formats out there. PotPlayer contains internal codecs and there is no need to install codecs manually. Other key features include WebCam/Analog/Digital TV devices support, gapless video playback, DXVA, live broadcasting. Distinctive features of the player is a high quality playback, support for all modern video and audio formats and a built DXVA video codecs. A wide range of subtitles are supported and you are also able to capture audio, video, and screenshots. A comprehensive video and audio player, that also supports TV channels, subtitles and skins. Its been described on the Internet as The KMPlayer redux, and it pretty much is. Daum PotPlayer 260622 (1.7.22963) changelog: Removed Kakao TV Added pause function when navigating via the navigation bar Significantly improved internal stability Fixed an issue where colors appeared strange during RGB24 processing Improved playback for some HTTP streams Improved sync processing for the built-in audio renderer Fixed an issue where certain MP4 files behaved abnormally during playback Download: Daum PotPlayer (64-bit) | 54.7 MB (Freeware) Download: Daum PotPlayer (32-bit) | 61.1 MB View: Daum PotPlayer Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Tixati 3.44 is out.
  • Recent Achievements

    • Dedicated
      tuben earned a badge
      Dedicated
    • Week One Done
      mnsgroup earned a badge
      Week One Done
    • Conversation Starter
      sumytbe earned a badge
      Conversation Starter
    • One Year In
      B4dM1k3 earned a badge
      One Year In
    • One Year In
      DarkWun earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      522
    2. 2
      +Edouard
      199
    3. 3
      PsYcHoKiLLa
      94
    4. 4
      Michael Scrip
      82
    5. 5
      neufuse
      69
  • Tell a friend

    Love Neowin? Tell a friend!