I am currently in the process of reading a book on C++, and in this book the author explains that it is better to use a constant rather than NULL macro, but without really explaining why or giving any advantages or disadvantages.  So why it's better to do use:   const int NULL = 0; int *ptr = NULL;   instead of:  int *ptr = NULL;   The only explanation is given is that the NULL macro is not type-safe.
In the early days of C++ when it was bolted on top of C, you could not use NULL as it was defined as (void*)0. You could not assign NULL to any pointer other than void*, which made it kind of useless. Back in those days, it was accepted that you used 0 (zero) for null pointers.  To this day, I have continued to use zero as a null pointer but those around me insist on using NULL. I personally do not see any benefit to giving a name (NULL) to an existing value - and since I also like to test pointers as truth values:  if (p &amp;&amp; !q)   do_something();   then using zero makes more sense (as in if you use NULL, you cannot logically use p &amp;&amp; !q - you need to explicitly compare against NULL, unless you assume NULL is zero, in which case why use NULL).  Is there any objective reason to prefer zero over NULL (or vice versa), or is all just personal preference?  Edit: I should add (and meant to originally say) that with RAII and exceptions, I rarely use zero/NULL pointers, but sometimes you do need them still.
I'm using pdflatex, and use \includegraphics to include content of figures from PDF. PDF are exported from InkScape.  \begin{figure} [!h]     \centering     \includegraphics[height=3cm]{fig/SUSAN.pdf} \end{figure}   Included PDF or source SVG has same colors. Green has always RGB value (0, 255, 0). Problem occurs when I include this files from LaTeX. In output PDF on some pages colorspace is darker. Even same image on other page has different colourity.  My PDF  . As you can see on page 7 (11 in PDF) USAN areas are bright green, but then on page 5 (9 in PDF) are green points on corners more darker. I have seen a few  here on Meta&nbsp;Stack&nbsp;Exchange that cover parts of this, but they are often too local, and none of them seem to cover all the relevant scenarios.  I will break it up into multiple parts in order to make this more specific:     When should I vote on a question:   What are the qualifications for a question to be deserving of being up-voted? When shouldn't I vote up on a question? What are the things that would cause a question to need to be down-voted?   How should I go about down-voting the question (do I wait a little while to give the OP a chance to change it, or do I down-vote it immediately)?  When shouldn't I vote down on a question?  When should I vote on an answer:   What are the qualifications for an answer to be deserving of being up-voted? When shouldn't I vote up on an answer? What are the thing that would cause an answer to need to be down-voted?   How should I go about down-voting the answer (do I wait a little while to give the OP a chance to change it, or do I down-vote it immediately)?  When shouldn't I vote down on an answer?  When should I vote on a comment:   While votes on comments do not affect reputation points, it might be useful to new users to know when to up-vote them.    It seems that a full, comprehensive list of these would be invaluable to new users looking to figure out how the voting system works, but this list seems to be missing from the meta site. I had internet connection, but when I upgraded my VGA and restarted my PC then everything for eth0 has gone.     When I used ifdown:     ifdown: interface eth0 not configured   Is there something I could do?    EDIT: Content of /etc/network/interfaces    auto lo iface lo inet loopback   When I ifconfig I don't have these lines:    inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0 inet6 addr: fe80::219:5bff:fe5e:a5e/64 Scope:Link   In the Terminal typed:  sudo gedit /etc/network/interfaces   and then added these lines in the bottom:  auto eth0 iface eth0 inet dhcp   then I typed:    sudo ifdown eth0 sudo ifup eth0   when I send the second command I received the below message:    No DHCPOFFERS received No working leases in persistent database - sleeping   Any help? How to achieve nomenclature entries like: symbol, Description, Dimension and unit, etc? The title is pretty much I want to ask. More detail, the nomenclature entries should be sorted in groups like:   Nomenclature     Acronyms     Symbol  Description     % no Dimensions and Units      ...     Greek Symbols     Symbol  Description             Dimensions     Units     ...     Roman Symbols     Symbol  Description             Dimensions     Units     S       Surface area vector     L^2            m^2     ...    Superscripts     Symbol  Description     % no Dimensions and Units      ...    Dimensionless Numbers     Symbol  Description     Definition     ...   e.g. expected entries like this:       My current nomenclature settings for grouping [book class]:  %---------------------------------------------------------- %                        Nomenclature %---------------------------------------------------------- %\renewcommand{\nomname}{List of Symbols and Abbrev.} \renewcommand\nomgroup[1]{%   \ifthenelse{\equal{#1}{A}}{%    \item[\textbf{Acronyms}] }{%                  A - Acronyms     \ifthenelse{\equal{#1}{R}}{%      \item[\textbf{Roman Symbols}]}{%            R - Roman       \ifthenelse{\equal{#1}{G}}{%         \item[\textbf{•} Symbols }]}{%          G - Greek           \ifthenelse{\equal{#1}{S}}{%            \item[\textbf{Superscripts  }]}{{%          S - Superscripts         \ifthenelse{\equal{#1}{U}}{%          \item[\textbf{Subscripts }]}{{%                 U - Subscripts         \ifthenelse{\equal{#1}{X}}{%          \item[\textbf{Other Symbols }]}%            X - Other Symbols                     {{}}}}}}}}}} %\ifpdf \renewcommand{\nomlabel}[1]{\hspace{1 em}#1}%{\hspace{1.5 em}#1} \renewcommand*{\nompreamble}{\markboth{\nomname}{\nomname}}   But how to extend it with Dimensions and Units? Show that if the Riesz map is surjective on $H$, then $H$ is a Hilbert space Let $H$ be a vector space equipped with an inner product $(\cdot, \cdot)$ and $f:H\to H',\ f(x)=(\cdot,x)$ surjective. Now, why $H$  is a Hilbert space? The other direction is clear by Riesz' representation theorem but what about this? Syntax error while defining an array as a property of a class Show that $A \setminus ( B \setminus C ) \equiv ( A \setminus B) \cup ( A \cap C )$ Show that  $A \setminus ( B \setminus C ) \equiv ( A \setminus B) \cup ( A \cap C )$  This is an exercise I was trying to do ( not homework ) and I got stuck as follows:  Working from $A \setminus ( B \setminus C )$:  $x \in A \wedge x \notin ( B \setminus C )$ $x \in A \wedge ((x \in B \wedge x \in C) \vee (x \notin B \wedge x \in C) \vee (x \notin B \wedge x \notin C) )$  At this point I'm not sure how to proceed.  Working from the other side $ ( A \setminus B) \cup ( A \cap C ) $:  $ x \in ( A \setminus B) \cup ( A \cap C ) $  $ x \in ( A \setminus B) \vee x \in ( A \cap C ) $  $ ( x \in A \wedge x \notin B ) \vee ( x \in A \wedge x \notin C ) $  $ x \in A \wedge (x \notin B \vee x \notin C ) $  $ x \in A \wedge x \notin ( B \cap C ) $  $ A \setminus ( B \cap C ) $  I could also use some formating tips like how display logical not and how to get the lines to display properly without blank lines inbetween. :-) Adobe Illustrator: Lines with stroke < 2.0pt doesn't change color I created lines using the line segment tool in Adobe Illustrator (latest Adobe Cloud version) and I can't change the color of the stroke (through the Appearance panel) if the stroke weight is less than 2.0pt.   If the stroke is 2pt or more, then the color around the line changes but not the line itself.    The whole behavior is odd for me as I've never faced in Illustrator before.  Edit: added screen below with the line selected. iPhone Storage Space Inaccuracy (No Storage Space) How to ask the position(?) of a president (like 10th) of a country, correctly? I have seen the word 'only' placed both before and after a noun. Where should the word 'only' go in this sentence? Is it the writer's choice?   If you have attended every lesson, only the songs need to be rehearsed at home. If you have attended every lesson, the songs only need to be rehearsed at home. How do I display a decimal value to 2 decimal places? I would like site specific magic links. Currently you can write [so] in a comment, and it links like this: . I would like to be able to have site specific ones, so for example: English Language &amp; Usage  [dictionary] would go to http://dictionary.com and shows as   Ubuntu  [launchpad] would go to https://launchpad.net/ubuntu and shows as   [launchpad#bugnum] would go to https://bugs.launchpad.net/bugs/bugnum and shows as   [forums] would go to http://ubuntuforums.org/ and sows as   [discourse] would go to http://discourse.ubuntu.com and shows as   [paste] or [pastebinit] would go to http://paste.ubuntu.com and shows as   [install-d] would go to http://ubuntu.com/download/desktop/install-ubuntu-desktop and shows as   [install-s] would go to http://ubuntu.com/download/server/install-ubuntu-server and shows as   ppa:peterlevi/ppa would go to https://launchpad.net/~peterlevi and shows as   There is    Ask Different  [applesup] would go to http://www.apple.com/support and shows as   Christianity  [bible] would go to http://biblegateway.com and shows as   Currently, they are all the same, for all sites. I would like devs (mods maybe) to be able to add them on a per site basis. This is just a selection of examples. People can comment or answer with ones they would like and I'll edit them into this question. I asked this because  on Ask Ubuntu Meta wasn't possible right now - because it wasn't a feature.  [The devs] said right now it isn't possible because magic links are network wide, and they weren't sure it was high enough priority to really get done anytime soon, but if you want you can post a feature-request on Meta Stack Exchange requesting site specific magic links and see if you can garner more support for the feature and maybe get a dev to champion it.  So that's what I've done! I've just upgraded from Ubuntu 18.04 to its newest LTS version - 20.04. While it comes with some interesting changes, the Desktop icon system was messed up in my opinion. When you hover the mouse cursor over the icons, you see a huge space marked around them that cannot be violated (as you can see in the image below) so that they need to be placed very far apart from each other.  18.04 allowed you to place icons much closer to each other and didn't have that marked space around them. This new way leaves much less space on the Desktop to organize large amounts of icons - including folders, files and shortcuts. Is there a way I can significantly reduce the size of icons and their "spaces" or go back to the old system of organizing files? On "Settings", there is a tool to change the size of Dock icons, but not of Desktop icons.  Also, every time I move or delete something, the Desktop "flashes" and the icons seem to rearrange themselves automatically, nothing of which happened in 18.04. I also can't move anything directly to the Desktop; I need to move to the Desktop folder on Nautilus. This makes me start to think about downgrading Ubuntu back to 18.04. I've read a great article about the . But there are still some points that are unclear.  Why do we say...   school project but not school's project? car service but not car's service or even cars' service (plural form)? apostrophe usage but not apostrophe's usage or apostrophes' usage? How do I use the conditional (ternary) operator? I've always wondered how to write the "A ? B : C" syntax in a C++ compatible language.  I think it works something like: (Pseudo code)  If A &gt; B    C = A Else    C = B   Will any veteran C++ programmer please help me out? Cauchy-Product of non-absolutely convergent series While grading some basic coursework on analysis, I read an argument, that a Cauchy product of two series that converge but not absolutely can never converge i.e. if $\sum a_n$, $\sum b_n$ converge but not absolutely, the series $\sum c_n$ with $$c_n= \sum_{k=0}^n a_{n-k}b_k$$ diverges.  Although we didn't have any theorem in the course stating something like this, it made me wonder if it was true. How can I replace a string in a file(s)? Obviously you need to have some high level idea of what's going on in the world around the players, and where you are heading with the story, but in an ongoing game at some point players will be players and will head off in a different direction to what you planned.  How far ahead should you be planning to minimise or eliminate being caught off guard, but also try to minimise the amount of 'wasted content' you come up with but never gets used? Opt out of moderator election notifications