int* p2 = a.template func<int>();
とやってもだめか?本来は冗長な書き方だが。