Another problem using static method in interrupt

I have been developing code & just can’t figure out what I have done wrong. I think I have reduced the problem to a minimum that shows it up. Here’s my sketch:-

class StaticTestClass{public: static void TransmitComplete(); };

ISR(USART_TX_vect){
StaticTestClass::TransmitComplete();
}
void setup(){}
void loop(){}

Seems to fail at the link stage:-

Arduino: 1.6.10 (Windows 10), Board: “Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)”

Linking everything together…
“C:\Program Files\Arduino\hardware\tools\avr/bin/avr-gcc” -Wall -Wextra -Os -flto -fuse-linker-plugin -Wl,–gc-sections -mmcu=atmega328p -o “C:\Users\Greg\AppData\Local\Temp\buildaeedc01370efb31b126a92fb3b6f216a.tmp/StaticTest.ino.elf” “C:\Users\Greg\AppData\Local\Temp\buildaeedc01370efb31b126a92fb3b6f216a.tmp\sketch\StaticTest.ino.cpp.o” “C:\Users\Greg\AppData\Local\Temp\buildaeedc01370efb31b126a92fb3b6f216a.tmp/core\core.a” “-LC:\Users\Greg\AppData\Local\Temp\buildaeedc01370efb31b126a92fb3b6f216a.tmp” -lm
C:\Users\Greg\AppData\Local\Temp\ccthvmqr.ltrans0.ltrans.o: In function `__vector_20’:

ccthvmqr.ltrans0.o:(.text+0xb6): undefined reference to `StaticTestClass::TransmitComplete()’

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino Pro or Pro Mini.

Any help would be really appreciated.

Your ISR appears to have only one : in the statement.

Doh! Thank you Paul, but I had been bumbling around with a few random changes without looking at reference book. I wasn’t paying enough attention about the version that I posted. I apologise for that.

However, changing <:> to <::>, it still doesn’t compile, but the diagnostic is different.

I have amended source code and compiler error report accordingly.

You've declared, in the class, a function, TransmitComplete(). Where have you implemented that function? The linker is saying that you haven't, and I'd have to agree with it.

Quite so. I had just homed in on the fact that it is a link time failure, not compile. Feeling very foolish. I thought I was chasing a compile error, but wasn't. Really helpful to have access to the forum. It's the sort of thing that I would have bounced off a colleague, when I had one. Now that I don't, I was just spending ages to figure out what was wrong & running out of things to try. I hadn't got as far as writing the implementation & thought I was still trying to clear my compile errors. I'm sure that's the right answer although I haven't proved it yet.

Yes. No implementation. Putting in a "do nothing" implementation fixes it. Link problem; not compile. Thank you Paul.