template ,inline