Static pointer to class member causes undefined reference of my problem is:  class Callee { public:   int m1()   {     return 5;   }    constexpr static int (Callee::*method)() = &amp;Callee::m1; };  template &lt;class O&gt; int call(O &amp;o, int (O::*m)()) {   return (o.*m)(); }  int main() {   Callee callee;   return     (callee.*Callee::method)() // works fine     *     call&lt;Callee&gt;(callee, Callee::method) // causes undefined reference in GCC   ; }   This code compiled in clang (3.4-1) but failed in gcc (4.8.4) with message:  undefined reference to `Callee::method'   Shorter, I can call some class method by its pointer directly, but I can't call it from templated function. (It is more unclear, than I inherit from Callee, because both methods works fine) Why?
Undefined reference to static class member Can anyone explain why following code won't compile? At least on g++ 4.2.4.  And more interesting, why it will compile when I cast MEMBER to int?  #include &lt;vector&gt;  class Foo {   public:       static const int MEMBER = 1;   };  int main(){       vector&lt;int&gt; v;       v.push_back( Foo::MEMBER );       // undefined reference to `Foo::MEMBER'     v.push_back( (int) Foo::MEMBER ); // OK       return 0; }
How can I get rid of ants in an environmently friendly way? Can an infinite set A be larger than an infinite set B but still have the same cardinality? Definition. Two sets have the same cardinality iff they can be put into one-to-one correspondence; or,     $$A \simeq B \iff |A| = |B| $$    This definition applies to infinite as well as to finite sets. It follows from the last three definitions that set $A$ has a larger cardinality than set $B$ iff both    a proper subset of $A$ and the whole of $B$ can be put into one-to-one correspondence the whole of $A$ cannot be put into one-to-one correspondence with any proper subset of $B$.   From: A Crash Course in the Mathematics Of Infinite Sets Peter Suber, Philosophy Department, Earlham College  The last part specifically refers to proper subsets of $B$.  That excludes at least one subset of $B$, namely $B$.  So, is it possible that the whole of A cannot be put into one-to-one correspondence with any proper subset of $B$ but may with $B$ itself? Why did he not say "any subset of $B$"? $\pi$ can be represented as $C/D$, and $C/D$ is a fraction, and the definition of an irrational number is that it cannot be represented as a fraction.   Then why is $\pi$ an irrational number? Fastest way to determine if an integer's square root is an integer I'm looking for the fastest way to determine if a long value is a perfect square (i.e. its square root is another integer):    I've done it the easy way, by using the built-in  function, but I'm wondering if there is a way to do it faster by restricting yourself to integer-only domain. Maintaining a lookup table is impractical (since there are about 231.5 integers whose square is less than 263).   Here is the very simple and straightforward way I'm doing it now:  public final static boolean isPerfectSquare(long n) {   if (n &lt; 0)     return false;    long tst = (long)(Math.sqrt(n) + 0.5);   return tst*tst == n; }   Note: I'm using this function in many  problems.  So no one else will ever have to maintain this code.  And this kind of micro-optimization could actually make a difference, since part of the challenge is to do every algorithm in less than a minute, and this function will need to be called millions of times in some problems.    I've tried the different solutions to the problem:   After exhaustive testing, I found that adding 0.5 to the result of Math.sqrt() is not necessary, at least not on my machine. The  was faster, but it gave incorrect results for n >= 410881.  However, as suggested by , we can use the FISR hack for n &lt; 410881. Newton's method was a good bit slower than Math.sqrt().  This is probably because Math.sqrt() uses something similar to Newton's Method, but implemented in the hardware so it's much faster than in Java.  Also, Newton's Method still required use of doubles. A modified Newton's method, which used a few tricks so that only integer math was involved, required some hacks to avoid overflow (I want this function to work with all positive 64-bit signed integers), and it was still slower than Math.sqrt(). Binary chop was even slower.  This makes sense because the binary chop will on average require 16 passes to find the square root of a 64-bit number. According to John's tests, using or statements is faster in C++ than using a switch, but in Java and C# there appears to be no difference between or and switch. I also tried making a lookup table (as a private static array of 64 boolean values).  Then instead of either switch or or statement, I would just say if(lookup[(int)(n&amp;0x3F)]) { test } else return false;.  To my surprise, this was (just slightly) slower. This is because . Equation numbering problems in AMSMath environments with \pause Lately I've been seeing this cookie popup that blocks a lot of the screen.  When I try to do the &quot;manage cookies&quot; thing, all it shows me are several categories, with a green oval containing a black circle to the right of each.  Clicking on that oval makes it disappear.  Clicking on the same spot again makes it reappear.  But I see no indication as to which state is off or on. So how can I make this popup go away, never to bother me again?  Or failing that, could you at least provide some indication as to what those buttons do?  Like maybe simple text saying &quot;Off&quot; or &quot;On&quot;? I use ssh on a variety of machines, mainly linux. Accounts on these machines vary in naming scheme: if my name is First Last, then I have accounts: first, flast, last_f, lastf, and sometimes I need to log in as root. For each machine I use, I would like the openssh client to know which account to use when I don't specify on the command line.  So the question is: How do I make ssh server Do The Right Thing when a username is not specified? Does "She had a brother" mean that her brother is dead? My Friend has sent me this riddle to solve:     "If you solve this, then you are a genius. Mr.Smith has 4   daughters🙍‍♀🙍‍♀🙍‍♀🙍‍♀ and each daughter had a brother.  How many   children does Mr. Smith have now?"   He said the answer is not 5, but 4 only as in the riddle it is mentioned as each daughter had a brother. So their only brother is dead.     Is he right? Unupvote immediately followed by an upvote gives me a net -10 reputation points I've been reading about a lot of different types of philosophies, religions, ways of thinking etc. I was wondering what are the most recently created philosophical ways of looking at the universe? Where can one find out about new cutting edge ideas?  Example: Before we had Marxism, Communism, Zen, Christianity etc. Now X,Y, and Z have been created building on and evolving the ideas of A,B,C.   Everything I read about are ideas that were created a long time ago. What is new and updated? How do I change the plymouth bootscreen? I have the following element element(by.css(&quot;span[aria-label='Picker ID, TESTUSER']&quot;)  I want to assure the text on this filed is TESTUSER, so I tried:  expect(element(by.css(&quot;span[aria-label='Picker ID, TESTUSER']&quot;)).getAttribute('value')).toEqual('TESTUSER');  then I got the error: Expected null to equal 'TESTUSER' So I tried: element(by.css(&quot;span[aria-label='Picker ID, TESTUSER']&quot;)).getText().then(function (value) {         console.log(value);       })  And I got this error: Expected '' to be 'TESTUSER'.  How to get the value of this field and expect it is TESTUSER? When is a biased estimator preferable to unbiased one? One confusion over conditional expectation Suppose for two random variables $X_1$ and $X_2$ $\sigma(X_1) = \sigma(X_2)$. Why $E[Y | X_1] = E[Y | X_2]$ a.e. ?  the set where $X_1= X_1(\omega)$ can be different from the set $X_2= X_2(\omega) $. How can then conditional expectation conditioned on the event can be equal ? When I run sudo the terminal is stuck for a few seconds and then outputs an error message. My terminal looks like this:  ubuntu@(none):~$ sudo true sudo: unable to resolve host (none)   What can I do to solve it? Format a date in XML via XSLT Asymptotic expansion of $u_{n + 1} = \frac12 \arctan(u_n)$ How to create svg symbols that have modifiable fill color, stroke color and stroke width? I want to create some svg symbols for Qgis using Inkscape, those symbols must have attributes as described in the question. For the last two days, I have been experimenting as instructed by  and mimicked some symbols came bundled with qgis that have desired attributes without any success.  Finally I experimented with the simplest form of symbol: I created an svg that contains only a circle in Inkscape and tried to modify it.  The original file () have this line:  &lt;path    sodipodi:type="arc"    style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.01988637;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"   I modified it into:  &lt;path    sodipodi:type="arc"    style="fill:param(fill) #ffffff;fill-opacity:1;stroke:param(outline) #000000;stroke-width:param(stroke-width) 1.01988637;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"   Saved as  and selected it as point symbol, but Qgis couldn't change all three parameters at the same time.  What did I do wrong or should do differently?  My system: Qgis 1.8.0 on Ubuntu 12.04 64 bit, Inkscape 0.48, Gedit 3.4.1 text editor. In fact, of these, only Charcoal shows a recent time stamp. Show that $\sum_{n=0}^\infty r^n e^{i n \theta} = \frac{1- r\cos(\theta)+i r \sin(\theta)}{1+r^2-2r\cos(\theta)}$