[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

/dpt/ - Daily Programming Thread

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 346
Thread images: 32

What are you working on, /g/?

Old thread: >>59533197
>>
First for C is a miracle of this universe.
>>
To the guy doing the Scala assignment in the other thread, you're not alone and I've got no chance.
>>
If your language isn't functional, it's dysfunctional
>>
If there is error in floating point representation, how is the computer supposed to produce accurate results?
>>
>>59536947
>No Generics
Straight into the >>>/trash/
>>
>>59536972
If you need more accuracy in your results than floating point can provide, don't use floating point. But it's accurate enough most of the time.
>>
File: 1450770707376.png (289KB, 514x424px) Image search: [Google]
1450770707376.png
289KB, 514x424px
>>59536990
>He doesn't know about _Generic
>>
>>59536990
You can make your own language with generics which is compiled into C :^)
>>
>>59536990
void * is good enough.
>>
>>59536956
Ruby supports Functional.
>>
File: 1489461328707.png (740KB, 1834x1200px) Image search: [Google]
1489461328707.png
740KB, 1834x1200px
>>59536990
kek
>This hurts a C tard
While big bois have Templates, Compile time code generations, Metaprogramming etc.
C has reached a point that it's just a bad joke these days
>>
>>59537055
I heard C is slowly catching up, their latest version has finally introduced half assed generics in form of _Generics.

But who the fuck would C anyway, apart from kernel developers. It's trash for everything else
>>
>>59537086
>who the fuck would C anyway
NEET /g/ babbies that like to role play as kernel devs
>>
there is literally nothing wrong with Go
>>
>>59537055
>templates
They're so weak (and get convoluted at any moderately complex task) you should just use someone's or write your own metaprogramming library.

Once you've done that I swear you won't go back. Even if you're a sepples fag. Most of the ideas introduced into C++ are just crippled. But to me templates are probably the most glaring example.
>>
File: 300px-Gordon_-Fyodor-_Lyon.jpg (9KB, 300x200px) Image search: [Google]
300px-Gordon_-Fyodor-_Lyon.jpg
9KB, 300x200px
>>59537104
or people who are like interested in coding, comp sci, hacking and other cool subjects.
C is the DNA of most of the more interesting systems that true gentleman are involved in.
>>
>>59537086
>>59537123
Don't feed the troll.
>>
>>59537123
I'll admit some of the C++ templates ideas are broken
That doesn't make me interested in timesink garbo like C in anyway. C lacks waay too many things
>>59537136
>interested in coding, comp sci, hacking
Don't hax me with those 1337 c0ding skillz br0
>>
>>59537136
>or people who are like interested in coding
How does "Coding" relate to C only?
>>
>>59537152
>C lacks waay too many things
C's lack of features is a feature in itself.
>>
>>59537161
Oh right, productivity is a feature of C
>>
>>59537161
You sound like one of those pretentious BSD fags
>U don't need it cuz we don't
>>
Hi /g/ I'm very new into coding i'm trying to chop this string into a 4 char, i hope you can help me.

String test = "abcdefghijklmnop";

System.out.println("abcd");
System.out.println("efgh");
System.out.println("ijkl");
System.out.println("mnop");
>>
>>59536947
The miracle is slowly loosing popularity
>>
>>59537186
print string[1..5]
print string[5...9]
..
>>
>>59537179
You clearly don't understand the design philosophy behind C.
>>
>>59537211
What is the design philosophy behind C again?
>>
>>59537152
>C lacks too many things
In time you will realise the issues of having unnecessary or counterproductive features. >>59537169 maybe you already do.

The features C lack for the kind of programming you should be doing in C++ and C are very few.

The features I feel C lacks are features that let you establish contracts at compile time. Things like Ds assert expressions are great. And note how that kind of feature doesn't spread insidiously throughout the code base in any way. It's a very constrained utility. If you want to get rid of it temporarily you tell the compiler. All the features I feel missing in C is stuff like that. It will probably never happen in C because it's not that kind of language.
>>
>>59537197
is there any way to dynamically iterate like every nth?
>>
>>59537222
The "make a program that's impressive for 1975" philosophy
>>
>>59537222
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm
>>
>>59537223
>The features C lack for the kind of programming you should be doing in C++ and C are very few.
So some jew in the internet is going to determine what features I need. Great

>In time you will realise the issues of having unnecessary or counterproductive features
In what way are Generivs are "unproductive"?
In what way metaprogramming is "unproductive"?
In what way exception handling is "unnecessary"?
>>
When is tail recursion not desired?
>>
>>59537243
>C is portable
Great meme, I don't even think C has a standard syntax for anonymous functions
>>
>>59537261
>In what way are Generivs are "unproductive"?
C++ templates are a step backwards

>In what way metaprogramming is "unproductive"?
Metaprogramming is a language flaw

>In what way exception handling is "unnecessary"?
Exceptions shouldn't be built into a language, and shouldn't permeate all functions
>>
>>59537243
>Provide only one way to do an operation.
Is that a joke?
>>
>>59537273

In the general case. While an optimizing compiler doesn't particularly care whether you use tail recursion or a while/for loop, someone who has to maintain your code will.
>>
>>59537261
>in what way...
Yeah those are big topics anon. It's nothing I'd bother to teach you.
>Jews decide for me
The domain decides for you. If you program in a domain the programming language isn't meant for you don't have a right to complain. C++ has a lot of marketing wank that must confuse you, it's expressed as a general purpose language but it's very specific when you get down to it. The problems with the language arises when you try to understand the features in terms of the domain it's actually useful for (where the features quickly degrade into distractions) or when you use it as a general purpose language. Its a very weak and poorly designed language for that.
C disregards the latter cases and focuses on the former. It does well there.
>>
>>59537305
>It's real
Kek
>>
>>59537297
You got a lot of strong opinions with 0 backings

>Metaprogramming is a language flaw
As if you and your fellow C tards would know what metaprogramming is

>Exceptions shouldn't be built into a language
Where is it specified?
>>
>>59537222
I find this is a good introduction to understanding where C comes from and just where it sits now:
https://www.bell-labs.com/usr/dmr/www/chist.html
>>
>>59537261
>In what way are Genercs are "unproductive"?
Templates of the C++ kind lead to object code bloat and unstable ABIs. C does not have any features which lead to a surprising amount of code being generated. Everything can be implemented relatively easily with real hardware.
>In what way metaprogramming is "unproductive"?
While primitive, C has the preprocessor.
>In what way exception handling is "unnecessary"?
Exceptions are shit and lead to inefficient code.

>>59537305
How is C bad in that regard?
>>
>>59537318
So basically C's goal was to be the better B?

Okay
>>
>>59537315
I don't think you understand the alternatives
>>
>>59537320
>How is C bad in that regard?
Idiot. C has more than one ways to do the simplest of things. Programmers are bound to have different approach to the same problem. I hate this buzzword
>>
>>59537320
>Templates of the C++ kind lead to object code bloat and unstable ABIs
You can create your own templates if you want to. Too bad using C will not allow you this
>CPP
NOTHING like actual metaprogramming, idiot. Learn from Lisps


>Exceptions are shit
Oh I got baited into talking to a 14 y/o
>>
>>59537335
You're going to have to provide concrete examples for that.
I'm not saying that there aren't a few duplicate facilities, as I can think of a couple myself (printf(...) vs fprintf(stdout, ...))(although they provide an neater API), but it's nowhere near as bad at this like some other languages.
>>
>>59537320
>Exceptions are shit
XD
>>
>>59537347
while
for
do while
>>
>>59537340
>>59537348
Are there seriously people in 20-fucking-17 who defend exceptions?
They're fucking garbage invisible gotos, and all they do is make your program harder to reason about.
>>
>>59537347
How are you going to determine "the one way" to solve a particular problem? Are you retarded?
>>
>>59537348
>>59537340
>sepples programmers who still think exceptions are a good idea
That's certainly an oddity. Unless you're straight out of school or in school that is.
>>
>>59537355
>They're fucking garbage invisible gotos
>invisible gotos
kek
>>
>>59537351
>while
>for
I suppose for doesn't add any expressive power over a while, but it covers such a common type of thing that people want to do, its presence is justified.
>do while
Not equivalent.
>>
>>59537358
Don't blame your dumb ass if you are too retarded to use exceptions properly
>>
>>59537355
>I don't need to handle exceptions
Oh boy how edgy
>>
>>59537368
Hundreds of ways of printing shit
>>
>>59537161
>C's lack of features is a feature in itself.
Just one of the stupid things you will see in the internet
>>
>>59537369
I do use them properly:
Not at all.
And I'm not hating on exceptions purely from my own experience.
>>
>>59537377
You only have the *printf family and put family.
They are all different in some way.
The only actual duplicate thing there is fputc and putchar, which was just some old performance "hack" that was popular enough before C89, so it was standardised.
>>
>>59537374
You don't need to handle exceptions where they don't exist. You shouldn't be throwing exceptions. Their very nature make them a poor error handling mechanism because they're about as destructive as stderror. Except stderror doesn't hurt your performance.
>>
>>59537396
And hundreds of ways of reading shit
>>
>>59537396
>fputc and putchar
Whoops, I mean fputc and putc.
>>
Someone explain this to me:
$ time python3 -c 'for i in range(1, 1000001): print(1)' >/dev/null 

real 0m0.760s
user 0m0.740s
sys 0m0.020s

$ time for i in {1..1000000}; do echo "1" >/dev/null; done

real 0m10.028s
user 0m7.308s
sys 0m2.668s

Bash is crippled
>>
>>59537402
Just the scanf family and the get family.
>>
>>59537399
>You don't need to handle exceptions where they don't exist.
User interaction
Program interfacing
Did you hit your head with something?
>>
>>59537399
>exceptions don't exist
oooh
>>
>be C++ codelet
>don't understand parametric polymorphism
>defend templates as being anything more than CPP++
>don't understand continuations
>defend all functions being part of the exception system
>can't express yourself in your pitiful language
>defend "metaprogramming" using templates
>>
File: 1489530656576.jpg (49KB, 600x381px) Image search: [Google]
1489530656576.jpg
49KB, 600x381px
>>59537420
You have to program in C for 10 years at least before promoting yourself to C++, little boy

There remains close to 0 reasons to use C anymore
>>
>>59537419
Just a C tard desperately defending C's lackings. this is not new

They'd even defend C if it lacked macros
>>
>>59537433
>be C++ codelet
>think everyone who points out C++'s flaws must be a C zealot
>>
>>59537433
Embedded systems due to legacy and speed will always use C
>>
>>59537444
>Be a C toddler
>Pretend not being a C toddler if someone points out how shitty C is
>>
>>59537446
>due to legacy
Yeah mostly this. Although it's changing soon
>>
>>59537449
Who are you describing?
>>
>>59537461
The person I replied to.
>>
>>59537469
I don't use C
>>
Not part of the arguement but why do exceptions need to exist?
Couldn't you just program in logic to handle all cases?
>>
>>59537456
>Although it's changing soon
Changing to Rust? Lmao. Not even close. Maybe in a decade. There are billions invested in keep legacy code up to date that isn't disappearing. That is the same reason why banks still run on ancient software.
>>
>>59537482
It's necessary for security purposes. IoT is a source of botnet and we should be careful of their exploits
>>
>>59537478
throwing an exception when you're 50 functions into the stack is much easier than typing a special return case for each level
>>
>>59537478
I don't want to argue with NEETs but here goes
https://docs.oracle.com/javase/tutorial/essential/exceptions/advantages.html
>>
>>59537478
Let's assume that you need to write some code for some object, which consists of n different resources (n > 3) to be allocated in the constructor and deallocated inside the destructor. Let's even say, that some of these resources depend on each other. E.g. in order to create an memory map of some file one would first have to successfully open the file and then perform the OS function for memory mapping. Without exception handling you would not be able to use the constructor(s) to allocate these resources but you would likely use two-step-initialization. You would have to take care about order of construction and destruction yourself -- since you're not using the constructor anymore. Without exception handling you would not be able to return rich error information to the caller -- this is why in exception free software one usually needs a debugger and debug executable to identify why some complex piece of software is suddenly failing. This again assumes, that not every library is able to simply dump it's error information to stderr. stderr is in certain cases not available, which in turn makes all code which is using stderr for error reporting not useable. Using C++ Exception Handling you would simply chain the classes wrapping the matching system calls into base or member class relationships AND the compiler would take care about order of construction and destruction and to only call destructors for not failed constructors.
>>
>>59537485
>It's necessary for security purposes
No. Not when it comes to C. C is used for embedded devices. The biggest security problem with embedded devices is having access to the physical device. Not software exploits.
>>
>>59537507
>No. Not when it comes to C. C is used for embedded devices.
Not because of its virtues, because of legacy codebase lockdown
>>
>>59537495
this is what monads are for
>>
>>59537478


Suppose you have func1 calling func2 with some input.

Now, suppose func2 fails for some reason.

Your suggestion is to handle the failure within func2, and then return to func1.

How will func1 "know" what error (if any) has occurred in func2 and how to proceed from that point?

The first solution that comes to mind is an error-code that func2 will return, where typically, a zero value will represent "OK", and each of the other (non-zero) values will represent a specific error that has occurred.

The problem with this mechanism is that it limits your flexibility in adding / handling new error-codes.

With the exception mechanism, you have a generic Exception object, which can be extended to any specific type of exception. In a way, it is similar to an error-code, but it can contain more information (for example, an error-message string).

You can still argue of course, "well, what's the try/catch for then? why not simply return this object?".

Fortunately, this question has already been answered here in great detail:

https://stackoverflow.com/questions/196522/in-c-what-are-the-benefits-of-using-exceptions-and-try-catch-instead-of-just

In general, there are two main advantages for exceptions over error-codes, both of which are different aspects of correct coding:

With an exception, the programmer must either handle it or throw it "upwards", whereas with an error-code, the programmer can mistakenly ignore it.

With the exception mechanism you can write your code much "cleaner" and have everything "automatically handled", wheres with error-codes you are obliged to implement a "tedious" switch/case, possibly in every function "up the call-stack".
>>
>>59537513
C doesn't have monads
>>
>>59537526
>
>>
>>59537509
>Legacy codebase lockdown
You say that like it isn't already a big issue. Already there is python 2.7 code that will never ever be migrated to python 3 due to legacy codebase. I can't imagine the undertaking going from C to another language. Unless there is a huge advantage present, embedded systems will always be in C.
>>
>>59537526
>>59537444
>>
>>59537534
>>59537433
>>
>>59537179
>pretentious faggot

back to plebbit with you
>>
>>59537538
Oh I get it

C++ is so bad, that the only way you could hold any positive opinions towards it would be if someone forced you to program in C for 10 years
>>
>>59537539
>>59537549
Stop posting
>>
>>59537553
>sepple safe space
>>
I never understood why C appeals to teenagers. I've had this happen to me when I was young too.
>>
is mayonnaise a programming language
>>
>>59537572
East to learn
>>
>>59537572
C was probably the first language people are taught when they go to college. It is like your first celebrity crush, she might be sucking mean dicks now but you will still have fond memories of her.
>>
>>59537581
easy*
>>
>>59537572
They get hooked up on C++ by the state at 12, then as soon as they can get away from it they'll jump to anything, even C.

We have to stop both of these god awful languages.
>>
Join the Haskell master race and use monads instead of those crappy exceptions
>>
>>59537572
First easy language they were taught in school, never managed to learn a real language
>>
>>59537572
Easy choice:
C = 300 page book and you are done xD
C++ =900 pages and you are almost there

I wonder what book would an edgy showoff teen would pick
>>
How would I change this so that it doesn't require the array minedNeighbours in Java?

  public String toString() {
String s = "";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
if (minefield[i][j]) {
s += "*";
} else {
s += minedNeighbours[i][j];
}
}
s += "\n";
}
return s;
}
>>
>>59537233
by using a loop
>>
>>59537598
already pure fp master race
>>
>>59537011
_Generic is so useless and gimped version of real generics that it may as well just not exist.
>>
File: 1372160992554.jpg (80KB, 625x620px) Image search: [Google]
1372160992554.jpg
80KB, 625x620px
>>59537628
>"""real generics"""
>>
>>59537637
I wish C++ had real generics
>>
>>59537640
D has got you covered
>>
>>59537637
Yes, proper, real generics. Something that an exclusive C programmer wouldn't know.
>>
>>59537637
>It's another episode of C tards pretending to know what generics mean
>>
File: press F to pay respects.png (909KB, 1280x720px) Image search: [Google]
press F to pay respects.png
909KB, 1280x720px
>>59537641
>D
>>
File: parametric.png (616KB, 680x954px) Image search: [Google]
parametric.png
616KB, 680x954px
>>59537641
This is bait, right?

>>59537649
>>59537650
pic
>>
>>59537653
>>59537659
>>59537637
>C tards resorting to memes
Clockwork
>>
File: 1374576743187.png (41KB, 400x400px) Image search: [Google]
1374576743187.png
41KB, 400x400px
>>59537649
>>59537650
>>59537663
>
>>
>>59537653
>press F to pay respects xDDD
Are we being raided by /v/?
>>
>>59537659
>pic
Thanks for proving my point re tard c tard
>>
>>59537663
>>59537675
I don't use C.
>>
>>59537659
can someone explain to me forall in haskell? I only did some basic stuff in this languge and while I can read most of the declarations I wondered what forall means. does it means the function is total or something? I thought that was the default.
>>
>>59537678
No one uses C, everyone pretends to use it
>>
Is haskell a meme? Does it get used in industry or is it purely academic?
>>
>>59537683
I have an Adrino. I use C.
>>
>>59537692
>>59537678
>>
>>59537679
forall a. e

is like
template <typename a>
e


except not retarded, not a template, and actually generic
when you write a signature like this:
length :: [a] -> Int
it's implicitly converted to
length :: forall a. [a] -> Int

>>59537691
All three to varying degrees
>>
>>59537572
A lot of online resources that suggest it as a starting language because many new languages are built from its foundations.
>>
>>59537691

its a research language imo. but its worth learning since some ideas get ported to other languages and often are the bases for libraries you might already be using in even fucking java. (and I heard that a lot of the metaprogramming done in c++ is borrowing patterns from haskell).
>>
>>59537704
Unfortunately, you might like to add.
>>
>>59537640
template <typename type> function(type parameter) {
unsigned char first_byte = *std::reinterpret_cast<unsigned char*>(&parameter);
if (first_byte < 99) first_byte = 99;
std::cout << "there are " << first_byte << " reasons why this is a real generic and a bitch ain't one" << std::endl
<< "(hint: a compile-time generic that's no longer generic at runtime is still a real generic, especially where it deals with types that take up exactly " << sizeof(type) << " bytes of RAM)" << std::endl;
}
>>
>>59537724
This is some of the most ugly code I've ever seen.
And all it does is print a string.

Sad.
>>
>>59537724
How do I pass this generic function as a parameter?
>>
File: vomit.jpg (90KB, 650x650px) Image search: [Google]
vomit.jpg
90KB, 650x650px
>>59537724
Do people actually defend this fucking language?
>>
>>59537761
Yes, there are two of them in this thread right now.
If you say there's anything wrong with that, they'll call you a C programmer, and accuse you of sepplephobia.
>>
>>59537741
What part is ugly?
template  <typename type>

If this is what you think is ugly, how else would you suggest generics be supported? At least this way, when you write a generic class, it's obvious you have to use the unspecialized name for the constructor, unlike with Java's shitty "WYSIWYG" equivalent.
function(type parameter)

This is ugly on purpose for the lulz. it's a joke on ambiguous identifier names
*std::reinterpret_cast<unsigned char*>(&parameter)

This is ugly on purpose too, but don't look at me, I didn't do it. C++ makes casting hard because it wants you to be very clearly aware there are a few different kinds of it and only some you should use. (This isn't one of them.)
std::cout << ...

This is an elegant way of printing data of heterogeneous type without relying on format strings. If this is what you think is ugly, how dare you.
>>
>>59537783
>>59537724
The worst part of that stupid example is that the C version is so much better.
void function(void *arg)
{
unsigned char *ptr = arg;
printf("blahblahblah %u\n", *ptr);
}
>>
File: 1467141816660.jpg (206KB, 1000x1000px) Image search: [Google]
1467141816660.jpg
206KB, 1000x1000px
>>59537724
>tfw Ada got genetics right and is 5(?) years older
>>
>>59537806
SEPPLESFAGS BTFO
>>
>>59537724
it's broken if someone overloads &
>>
>>59537758
You can't. Generic functions in C++ are not first-class objects. But they're still real generics.
>>
>>59537818
kek

now this is just embarassing for C++
>>
File: 1490248640395.jpg (14KB, 450x300px) Image search: [Google]
1490248640395.jpg
14KB, 450x300px
>>59537830
>Generics don't exist in C++ but they're still real generics
>>
File: 1407220426641.gif (2MB, 640x360px) Image search: [Google]
1407220426641.gif
2MB, 640x360px
>>59537830
Get a load of this fucking idiot.
>>
>>59537806
Not when you have anything more complicated than an unsigned char to print.

printf can't handle entire struct instances, whereas std::cout can handle entire class instances

>>59537811
>"genetics"
>that picture
fuck me

>>59537818
who the fuck in their right mind would overload &
>>
>>59537854
probably the same kind of person who'd use C++

i wouldn't use the term "right minded" though
>>
>>59537273
Bumping question
>>
>>59537861
Top quality argument
>>
>>59537839
Generics do too exist in C++, they just aren't first-class objects.
>>59537844
no u
>>
>>59537830
>>59537839
>>59537844

This is some of the funniest shit I've seen
>>
>>59537861
if that were true then the C++ community would think this is a good idea
as the resident C++ community, I can authoritatively declare I do not think this is a good idea
>>
>>59537578
If you can make it Turing-complete...
>>
>reimplement stl because stl is slow
>claim to restrict yourself to "sane" subset but still end up creating ugly template mess
>overload operators needlessly just because you can
Fuck everybody who programs in sepples.
>>
>>59537889
By that definition C is a programming language
>>
File: eg5.png (52KB, 729x540px) Image search: [Google]
eg5.png
52KB, 729x540px
>>59537885
>as the resident C++ community
>>
>>59537572
Teens get memed into thinking that performance is always top priority and that abstractions = lower performance.
Which both are wrong.

t. C++, Rust programmer.
>>
Why does Europe shitpost so much?
>>
>>59537901
Considering how dumb Am*ricans are, I think it's them
>>
>>59537572
Show me a single teenager who finds programming even remotely appealing. Where the hell do you come from?
>>
File: 20170321_070938.png (595KB, 781x739px) Image search: [Google]
20170321_070938.png
595KB, 781x739px
>>59537890
>is so bad at using the STL that he actually thinks it's slow
>is so bad at idiomatic C++ that he thinks only a subset can be "sane"
>doesn't know the difference between useful operator overloading and shit like overloading the address operator
wew lad
>>
>>595379069(0% of C toddlers ITT is a good start
>>
>>59537906
>Show me a single teenager who finds programming even remotely appealing.
See this thread
>>
>>59537890
>stl is slow
What is this meme I keep hearing?
Can you post an example of how it is slow?
>>
>>59537909
The STL isn't slow, it's just verbose garbage produced by retards.
I mean look at the new variant and optional

Take a good idea and turn it into trash
>>
>>59537896
templates are implicitly inlined anon-kun
>>
File: 1452470927215.jpg (127KB, 510x600px) Image search: [Google]
1452470927215.jpg
127KB, 510x600px
>Muh abstractions
>Le performance isn't important, computers are so fast XDDD
Anyone who spouts this stupid shit is fucking retarded and not worth engaging with.
>>
>>59537937
Almost all of your performance drain comes from your shitty algorithm. Not like a fizzbuzzer would know
>>
>>59537928
not slow, but it cripples compile times
>>
>>59537937
keep making drivers you faggot while I'm making your mum cum
>>
>>59537612
Self-bumping in order to get a response.
>>
>>59537937
>Too dumb to write efficient programs
>C will make my bins fast :D
>>
File: 1490213164540.png (216KB, 1712x944px) Image search: [Google]
1490213164540.png
216KB, 1712x944px
>>59537937
>performance isn't important
okay
>>
>>59537896
see this guy agrees with me, he doesn't do it either
>>
>>59537937
If performance is SO important use Assembly
>>
File: eg6.png (59KB, 1150x688px) Image search: [Google]
eg6.png
59KB, 1150x688px
>>59537958
I hate C++
>>
>>59537940
Real world performance comes from effective use of scarce resources.
In modern systems, with most programs, the most scarce resource is the cache, but it's not like an OOPshitter like you would know that.
Keep jerking off over your algorithmically "good" worst case, while you thrash the shit out of your cache.
>>
>>59537973
>list
>is actually a vector

why would you mislead me like this
>>
>>59537989
>Real world performance comes from effective use of scarce resources.
Right so good and efficient algorithm and proper use of parallelism. No need to worry about 150MHz processor these days unless you have some very rare niche
>>
File: eg3.png (18KB, 674x352px) Image search: [Google]
eg3.png
18KB, 674x352px
>>59538005
>>
>>59537989
>Keep jerking off over your algorithmically "good" worst case, while you thrash the shit out of your cache.
1. You are basically saying you are a shit programmer
2. You are basically ignoring HOW far hardware have progressed
>>
File: Screenshot_20170323-024248.jpg (352KB, 1410x644px) Image search: [Google]
Screenshot_20170323-024248.jpg
352KB, 1410x644px
>>59537973
maybe try not writing bad code on purpose
>uses a fucking macro to declare his fields
what the fuck is this garbage
>>
Give me a quick rundown on this thread please, it became too large too fast
>>
>>59538008
You seemed to have entirely missed my point, you fucking retard.
You're always championing "Muh abstractions", but most abstractions that programmers produce are fucking garbage and run very poorly on modern systems.

>>59538024
>2. You are basically ignoring HOW far hardware have progressed
You are basically ignoring how far hardware HASN'T progressed

>>59538031
It's just a bunch of shitposting.
>>
>>59538031
it's another of episode of 'c++ is shit'
>>
>>59538029
This was an improvement over someone else's code.

I thought you said the C users were just too small minded for metaprogramming , anon?
>>
>>59538031
someone liked c++ and everyone else became assmad
>>
>>59538029
>Doesn't know about xmacros
Dumb sepplesfag.
>>
>>59538032
>You are basically ignoring how far hardware HASN'T progressed
16 thread, 8 cores. Poorfags BTFO
>>
>>59538008
>No need to worry about 150MHz processor these days
MCUs rarely are so fast.
>>
File: 1484433191584.png (376KB, 940x720px) Image search: [Google]
1484433191584.png
376KB, 940x720px
>>59538031
another rare akarin added to my collection
>>
>>59538043
>16 thread, 8 cores. Poorfags BTFO
And memory access is still slow as fuck.
>>
>>59538031
>C tard posts this >>59536947
>C++ fag posts this >>59536990
>C tards become MAD
>>
>>59538053
You missed the part where the C++fags get BTFO.
>>
>>59538050
Same here
>>
>>59538054
All I see is a couple of angry C manlet trying to defend the fact that C doesn't even have generics
>>
>>59538035
>This was an improvement over someone else's code.
good lord

>I thought you said the C users were just too small minded for metaprogramming , anon?
I never said anything of the sort, and frankly I'm also a C programmer, but now that you mention it, C++'s metaprogramming features are part of why I love it -- but holy fuck not like this
>>
>>59538054
C* tards getting BTFO

FTFY
>>
>>59538062
So you don't actually like metaprogramming

inb4 some D fag bitching that his templates can do that
still a shit language, just like C++
>>
File: 1488248151444.jpg (233KB, 503x662px) Image search: [Google]
1488248151444.jpg
233KB, 503x662px
C is a disservice to intelligent programmers. It has almost 0 features that a modern and intelligent programmer uses to be productive. Since C is such a timesink, it's popularity is falling more than any other languages in the market.
C is dying and it should die ASAP. C programmers are actually retards in general. C is a small language to grasp, exactly the kind of shit that makes things retard friendly.
C has no advanced features like C++ does.

But as a newfag you are kinda in the right direction. C is for newbies. Think of it this way:
During ancient times, counting to 10 was a big deal and a person who could count to 10 was considered to be "wise".

Fast forward a few century counting to 10 is so trivial we teach this to toddlers. Now toddlers appreciate the vast "knowledge" of counting to 10 while matured brains are busy with modern technologies.

C is from stone age and the people who still preach it is like overgrown toddlers that can't learn advanced things.
C doesn't have delegates
C doesn't have resizable arrays
C doesn't have strings
C doesn't have string concatenation
C doesn't have namespaces
C doesn't have exception handling
C doesn't have closures in the standard
C doesn't have unit tests
C doesn't have Function overloading
C doesn't have memory safety of any kind
C doesn't prevent memory exploits and has no bounds and runtime checks
C doesn't have dynamic method loading/creatin
C doesn't even have generics and templates
C doesn't have meta programming
C doesn't have mixins
C doesn't have higher order functions
C doesn't have contract programming
C doesn't have inner classes
C doesn't have function literals
C doesn't have array slicing
C has a very limited support for implicit parallelism
C doesn't even have string switches

C is a cancer that plagues the modern software industry. If you want guaranteed memory exploits and security vulnerabilities in your program with timesink development period then use Assembly, not C.
>>
>>59538077
C manlets BTFO
>>
>>59538073
>So you don't actually like metaprogramming
Yeah, I do, but that's not metaprogramming, that's shitposting in code form
>>
>>59538077
wtf I hate C now
>>
>>59538089
that is literally metaprogramming you dumbass
not my fault your language can't abstract over field names
>>
>>59538077
>During ancient times, counting to 10 was a big deal and a person who could count to 10 was considered to be "wise".

>Fast forward a few century counting to 10 is so trivial we teach this to toddlers. Now toddlers appreciate the vast "knowledge" of counting to 10 while matured brains are busy with modern technologies.

Except that modern languages make it easier to do things. That's why OOP was pushed so much, because it made it easier to code so that they could easily train pajeets to code for pennies.

C is basically a minor abstraction over assembly compare to today's modern languages.
>>
>>59536938
Some octave, for andrew ng ML course.
>>
File: 1487550646729.jpg (84KB, 648x720px) Image search: [Google]
1487550646729.jpg
84KB, 648x720px
>>59538077
C doesn't have strings? Really?
>>
File: 1485904893417.png (2MB, 1220x1220px) Image search: [Google]
1485904893417.png
2MB, 1220x1220px
>>59538108
No, they have null terminated byte arrays that "identify" as strings.

>tfw you write a language with string literals but no strings
>>
>>59538108
char string[] = "Hello, World!";
>>
>>59538105
Yeah just like adding two big numbers is least of concerns for adults, they let calculators take care of it.

Toddlers add the numbers manually and feel smug about it.
>>
>>59538108
C is really just a tool for moving memory around, so there is no language concept of a string.
>>
>>59538123
That's a char array, not strings
>>
>>59538136
What's the difference?
>>
File: 1484950273793.jpg (34KB, 710x720px) Image search: [Google]
1484950273793.jpg
34KB, 710x720px
>>59538117
wtf I actually hate C now
>>
>>59538077
I'm the guy who's been defending C++. As a person who uses and loves both C and C++, I'm offended.

>C doesn't have delegates
struct my_C_style_class {
void (*my_delegate)(struct my_C_style_class*);
};

>C doesn't have resizable arrays
realloc

>C doesn't have strings
... Oh
I get it
you're trolling
>>
>>59538138
No \0
>>
>>59538140
>>59538117
By that logic, Haskell doesn't have strings either, because they're just a list of Char.
>>
>>59538138
How long is a piece of string?
>>
>>59538145
What is a string, if not a list of characters?
>>
>>59538143
>realloc
That's cool but can you do this

array += "element"
>>
>>59538144
Since when was that a requirement for a string?
>>
>>59538138
You can't perform all sorts of string operations on all char arrays.

char* this = "test";

Trying to modify the pointed-to data in this case is undefined behaviour and would most likely lead to a segfault.


>>59538145
>>
>>59538156
that's just syntactic sugar
>>
>>59538160
Since\0 when\0 C\0 tards\0 write\0 shit\0 this\0 way?\0
>>
>>59538128
Lol, English must not be your first language because you didn't even understand what I said. I'm just going to disregard your opinion because you're just a clueless troll.
>>
>>59536938

What is good literature for learning to code (specifically in C++).

Books that not only explain the syntax, but also the concepts (what is an object, a constructor, a function, a template...).

My current level of knowledge is very low.
>>
>>59538155
That's actually my point.
An array and a list are just sequences of chars.
>>
>>59538104
>that is literally metaprogramming you dumbass
If that's what metaprogramming is to you, you're not a programmer
>not my fault your language can't abstract over field names
We have a data structure for that, it's called a hash table. Unfortunately you have to implement it yourself because the STL doesn't have one, all they have is an associative binary search tree which is basically the same thing except not as good
>>
>>59538163
I like sugars
>>
>>59538168
Without the \0
>>
>>59538143
>realloc
>resizable arrays

They're not the same. A pointer is not an array.
>>
>>59538170
Go get diabetes elsewhere dumb murrican.
>>
>>59538161
Define "string operations".
>Trying to modify the pointed-to data in this case is undefined behaviour
That's because it points to read-only memory, idiot.
>>
>>59538184
Not him but I am so edgy I don't take any sugars. I like syntactic salts to make myself look c00l3r
>>
>>59538168
In most languages you can perform operations on strings which you can't in C; you need to pass around char arrays and buffers.

Haskell is kinda special, because you never mutate data directly and always create a copy.
>>
>>59538060
Not that anon, but do you need generics in a language with no types?
Just make a struct that holds the type info, if you need that for something, since thats basically what higher level languages do...
>>
>>59538181
Please implement a resizeable array without using a pointer, or any language construct that would use a pointer under the hood.
>A pointer is not an array
But it can point to an array.
>>
>>59538195
>C has no types
>>
>>59538202
>C
>""""types""""
>>
>>59538181
>They're not the same.
They're functionally interchangeable. Also, all resizable arrays are implemented in terms of realloc.
>A pointer is not an array.
Not all pointers are arrays, but all arrays are pointers.
>>
>>59538169
Not static, can't be accessed using .field
Try again next time?
>>
>>59538194
>In most languages you can perform operations on strings which you can't in C; you need to pass around char arrays and buffers.
So? Are other languages just simply exempt from the concept of storage?
>because you never mutate data directly and always create a copy
Java has immutable """strings""", so I guess they don't have them either.
>>
File: 1485764233138.png (372KB, 954x768px) Image search: [Google]
1485764233138.png
372KB, 954x768px
>>59538195
What is a vector?
>>
>>59538211
This\0 anon\0 gets\0 it\0

I'm\0 so\0 practical\0
>>
>>59538060
nor does C++
>>
>>59538202
Everything's a number in C mate, arrays are just pointers(numbers), to memory that has numbers that represent said array/struct.
The only things types influence in c is the size of the number...
>>
>>59538209
>Not static,
Not relevant,
>can't be accessed using .field
relevant but not important
>Try again next time?
nah i got it the first time thanks
>>
>>59538212
meant for >>59538196
>>
>>59538187
>Define "string operations".
https://en.wikipedia.org/wiki/String_operations

>That's because it points to read-only memory, idiot.
No shit, anon. That's my point. char arrays are not strings. You need to copy everything into buffers and pass around pointers to them .

>>59538207
>They're functionally interchangeable. Also, all resizable arrays are implemented in terms of realloc.
No, they're not. You can modify a pointer. You cannot modify an array.

These two function signatures are inherently different
int foo(int* v);

int bar(int a[10]);


>Not all pointers are arrays, but all arrays are pointers.
An array is actually a reference. Similar to sepples references.
>>
>>59538219
If you care about your damn nulls so much, just used modified UTF-8.
>>
>>59538226
Then what's wrong with void*?
>>
>>59538221
C++ has generics, but in their unspecialized forms they aren't first-class objects, and if you think that means it doesn't have them then clearly you must not think Java has methods either, because methods are not first-class objects in Java
>>
>>59538235
Do\0 I\0 need\0 to\0 actually\0 modify\0 UTF-8\0 to\0 get\0 strings\0 in\0 C?\0
>>
Requesting that roll image with a list of projects to work on because I need stuff to put on github and I can't think of anything interesting to do on my own
>>
>>59538251
https://better-dpt-roll.github.io/
>>
>>59538230
>You need to copy everything into buffers and pass around pointers to them
So? Copying takes place when you do your string operations is other languages.
What you're fucking complaining about is the fact that arrays aren't first class values in C. C isn't going to allocate shit behind your back, so that's why you have to worry about storage.
C has arrays. C has strings. C has functions.
They're just not first class.
>>
>>59537909
A game dev anon said in industry they never use stl because it's crap and slow.
>>
>>59538236
non sequitur

>>59538230
I don't know what planet you come from, but arrays are modifiable unless declared const, and also all references are pointers
>>
>>59538196
C++ vectors
>>
>>59538255
arigato
>>
>>59538256\0
>C\0 has\0 strings.\0
Is\0 this\0 the\0 newest\0 meme?\0
>>
>>59538242
C++ doesn't have generics, it has templates.
>>
>>59538263
a typical implementation uses 3 pointers under the hood
>>
>>59538271
>the string representation is not in a way I like so it's not a string
>>
>>59538256
>C has functions.
>They're just not first class.
Yes they are
void(*)(void)
>>
>>59538245
Modified UTF-8 is just normal UTF-8, except you allow a single "invalid" over-long encoding, which is 2 bytes for the null character. It's actually a valid thing for C programs to do when reading strings (from files etc.) when there may be a null character present, and want to be able to deal with them properly.

>>59538263
>>59538227
>that would use a pointer under the hood
Are you fucking retarded?
>>
>>59538263
std::vector uses pointers and realloc (equivalent) under the hood. Retard.
>>
>>59538284
That's a function pointer.
A function pointer is not a function.
>>
>>59538284
the only problem is you can't mix up a void* and a fptr
>>
>>59538279
Templates are generics, they're just not still generics at runtime.
>>
>>59538283\0
This\0
I just\0 love\0 writing\0 strings\0 in\0 this\0 "way"\0
>>
>>59538256
>So? Copying takes place when you do your string operations is other languages.
Yes, but in C you need to do them explicit. Hence the claim: C does not have string types, C has char arrays and pointer arithmetics.

I don't really see why this is somehow upsetting to you? Most C newcombers quickly learn that C doesn't have a string type.

>What you're fucking complaining about is the fact that arrays aren't first class values in C. C isn't going to allocate shit behind your back, so that's why you have to worry about storage.
Which also means that C doesn't have a string type, but rather points to memory.

Which is the exact thing I've been saying all along.


>>59538261
>I don't know what planet you come from, but arrays are modifiable unless declared const, and also all references are pointers
The content of the array is modifiable. The array itself is not.

>and also all references are pointers
They may be implemented as pointers, but they clearly aren't. References are non-nullable and you can't do pointer arithmetics on them and you can't reassign them.
>>
>>59538290
No, but it degenerates into one so it's basically as good
>>59538293
void(**)(void)

thanks, problem fixed
>>
>>59538300
>C does not have string types
Stop moving the goalposts.
You fags have been saying that C doesn't have strings at all.
>>
How do I define local functions in Scheme?
>>
>>59538288
>>59538286
>>59538280
hurr durr you can't use a pointer under the hood because I made up this completely arbitrary demand on the spot
>>
File: 1lxoeu.jpg (49KB, 576x500px) Image search: [Google]
1lxoeu.jpg
49KB, 576x500px
>>59538136
>>
>>59538305\0
C\0 has\0 no\0 strings\0
>>
>>59538284
Is this currying? Passing a function back and evaluating these instead of having two parameters?
>>
>>59538309
>I made up this completely arbitrary demand on the spot
C is a language that is actually designed to run on real hardware.
>>
>>59538295
then say C++ has compile time generics

do you not consider this a fault?
>>
What is a good IDE for someone who has given up on writing makefiles for every project?
Preferably lightweight and has a dark theme (monokai or something)
>>
>>59538314\0
Oh\0 you\0 had\0 to\0 resort\0 to\0 making\0 a\0 meme\0
How\0 adorable.\0
>>
>>59538305
>You fags have been saying that C doesn't have strings at all.
Char arrays aren't strings though. It's merely a memory reference.

https://en.wikipedia.org/wiki/String_operations

You're really missing the point in the original post, which is about C's lack of typesafety.
>>
>>59538300
>The content of the array is modifiable. The array itself is not.
oh
well i mean yeah
this seems like it should be obvious??
it's a good thing as well
>They may be implemented as pointers, but they clearly aren't. References are non-nullable and you can't do pointer arithmetics on them and you can't reassign them.
agree but consider this:
why would you EVER use arrays instead of bare pointers
>>
>>59538327
intellij
>>
File: le meme le xd.png (216KB, 576x500px) Image search: [Google]
le meme le xd.png
216KB, 576x500px
>>59538314
>>
>>59538319
>real hardware.
I\0 can\0 run\0 other\0 languages\0 in\0 complex\0 hardware\0
>>
>>59538298
That's nice, but why do you do that? It's not required in C.
>>
>>59538322
no, i don't. compile time generics (templates) are quite useful and the need for runtime generics is nonexistent
>>
>>59538319
Yes, it's a portable assembly. We all know this, which is why we're criticizing it for its lack of a proper strong type system.

Computer scientists design proper languages with formal proofs and types. Engineers just hack together some boilerplate crap and cause literally 4 decades of buffer overflows and security flaws.
>>
>>59538339\0
I\0 do\0 it\0 because\0 there\0 are\0 no\0 strings\0 in\0 C\0
>>
>>59538332
>why would you EVER use arrays instead of bare pointers
The same reason why you would use a reference and not a pointer in C++: compile-time errors when you do operations that aren't allowed, in this case for example accesses beyond the last element.
>>
>>59538348
#include <string.h>
>>
>>59538286
>It's actually a valid thing for C programs to do when reading strings (from files etc.) when there may be a null character present, and want to be able to deal with them properly.

AFAIK, C99 has wchar.h to deal with Ubicode properly.
>>
>>59538123
>>59538136
>>59538144

#include <stdio.h>

void main() {
char string[] = "Hello, World!";
printf("%o\n", string[13]); // lol
}
>>
>>59538362
Wide chars and unicode are not the same. UTF-8 can be properly encoded in multi-byte strings (mbchars)
>>
>>59538344
your shitty language can't even express the basics of the situations in which you would need runtime polymorphism
>>
>>59538357
Cstring\0 doesn't\0 change\0 anything\0
>>
>>59538373
What's the difference then?
>>
>>59538362
Wide chars have problems of their own (Mainly due to Microsoft's retardation).
>>
>>59538376
>runtime polymorphism
std::dynamic_cast
>>
>>59538379
wide chars is when every character in the character set uses a fixed size storage (UTF-16). multi-byte strings is when a character may be an escape sequence to indicate expanded character set (such is the case for UTF-8).
>>
>>59538348
That doesn't matter. It is not required.
>>
>>59538380
What did MS do?
>>
>>59538376
>runtime polymorphism
Don't move the goalposts, we were talking about runtime generics.
>>
>>59538385
Oh for fucks sake, fuck off with your fucking bullshit inheritance.
Nobody over the age of 3 gives a shit about a dog being an animal.
We're talking about real polymorphism here
>>
>>59538395
>I got owned: the post
>>
>>59538395
>We're talking about real polymorphism here
template <typename base> class derived: public base
>>
>>59538394
>>59538404
>>59538406

https://en.wikipedia.org/wiki/Polymorphism_(computer_science)#Parametric_polymorphism
>>
>>59538393
Sit on the C committee board and make decisions about C's design based on some retarded character encoding issue in Windows.

To add insult to injury, they were allowed to do this despite their own C compiler barely support ANSI C (aka C89) and they had an apparent self interest in holding C back.
>>
>>59538393
sizeof(wchar_t) == 2. 16 bits is not enough to cover Unicode.
Using C11's char32_t from <uchar.h> (and ensuring that __STDC_UTF_32_ is 1) would be a better idea.
However, I would still prefer using UTF-8 over that.
>>
>>59538410
>C tards cucked by MS
>>
New thread:

>>59538415
>>59538415
>>
>>
>>59538409
You said "runtime polymorphism" so I assumed you weren't talking about runtime PARAMETRIC polymorphism, since no need exists for any such thing ever.
>>
>>59538418
Point in case: Hatred towards Microsoft is lost on all these millennial kids who only know Xbox and think Microsoft is into open source because they adopted their mongoloid "Microsoft hearts Linux" marketing campaign, but it's really well justified in reality.
>>
>>59538348
strings aren't char arrays.
strings are char arrays with with null terminators.
> too brainlet for brainlet language
>>
>>59538433
>since no need exists for any such thing ever.
As I said before, your language is so shit that it can't even express the scenarios in which you need it.
>>
>>59538395
>I breed shroom dogs
>>
>>59538444
>As I said before, your language is so shit that it can't even express the scenarios in which you need it.
It's not an issue of the language, it's an issue of the existence of such scenarios in a language-agnostic sense. You NEVER need runtime generics in ANY language.
>>
>>59538436
kek
>>
>>59538436
>>59538418
BTFO
>>
>>59538133
The sanest post so far
>>
>>59538458
potentially infinite type instantiations
>>
>>59538475
Can be handled with compile-time generics.
>>
>>59538484
>potentially infinite code size
>>
>>59538436
>loves
>provides incomplete tools justifying it calling "CORE" components
>no ms office on linux
Yeah, kinda nigger's love.
>>
>>59538475
... Oh, wait, you mean type instantiations that are potentially infinite at runtime.

In languages in which types can be dynamically created at runtime. Got it.

In other words, you fell for the first-class types meme.
>>
ITT virgins arguing about C
>>
>>59538504
>In languages in which types can be dynamically created at runtime. Got it.
>In other words, you fell for the first-class types meme.

recursive parametric type definitions anon
>>
Mathfag here,

I was just wanted to know what the best way to define a bijective function is..

I've been using switch-case statements so far. Is there any better way to do it though?

I'm using C++ if it really matters
>>
>language wars
Not even once.
>>
>>59539490
What's your domain and codomain? What function?
>>
File: bijective.jpe.jpg (27KB, 340x340px) Image search: [Google]
bijective.jpe.jpg
27KB, 340x340px
>>59539688
Both are sets of integers

Something like pic related, roughly 50 numbers on both the sets
>>
>>59539490
Due to fallthrough, switch statements aren't really guaranteed to be injective (so no guarantee of bijectiveness either). There's also no requirement that they're written injectively, i.e., the "default" case may be omitted.
>>
>>59539764

Well, what about the whole efficiency perspective?

If switch case really does work similar to an else-if ladder, I would imagine that we would be making too many redundant comparisions
>>
>>59539832
It's really up to the compiler how it does switches, but most modern ones will use a jump table when you get a good amount of cases.
>>
>>59539869
Oh!
That I had no clue about
Thanks a bunch Anon!
>>
>>59539764

>due to fallthrough
There is no fallthrough if you break or return, which you should be doing with a switch every time.
>>
>>59539934
>>59539764
>>59539490
Oops, I meant fallthrough makes there be no guarantee of surjectivity.

Also, using a default case makes it non-injective if the default covers more than one case (which is the point of a default).
>>
>>59539965
Fugged it up. Fallthrough makes there be no guarantee of injectivity (not one to one).

The lack of surjectivity comes from not having to have a default and not having to cover all cases.
>>
>>59538260
but how and why is it slow? which containers? serious question
>>
>>59539757
Just use an array?
>>
Say for example I have
bin=foo
binprofile=$(bin)profile
deps=bar.h util.h
objs=bar.o util.o
objsprofile=$(obj:%.o=%profile.o)
cc=clang
cflag=-Wall -I../include
oflag=-O2
oflagprofile=-g -O0
ldflag=-L/usr/lib -lm

%.o : %.c $deps
$(cc) -c -o $@ $< $(cflag) $(oflag)

%profile.o : %.c $deps
$(cc) -c -o $@ $< $(cflag) $(oflagprofile)

$(bin) : $(objs)
$(cc) -o $@ $^ $(cflag) $(ldflag) $(oflag)

$(binprofile) : $(objsprofile)
$(cc) -o $@ $^ $(cflag) $(ldflag) $(oflagprofile)

.PHONY : profile
profile : $(binprofile) $(bin)
valgrind -v --leak-check=full --suppressions=supress $(binprofile)
bash -exec time $(bin)

.PHONY : clean
@rm -vf *.o $(bin) $(binprofile)


When linking the final binary, should I keep the warning, include ($cflag) and optimization ($oflag) options?
I tried removing them and did not notice a difference but maybe I am overlooking something.
>>
>>59540029
Here are his posts.
>>59400058
>>59400144
>>
Doing labs for my C++ class
Thread posts: 346
Thread images: 32


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.