मेरे पास वर्तमान में एक वैरैडिक फ़ंक्शन है जो मनमानी प्रकारों (डुह) के तर्कों की मनमानी संख्या लेता है, हालांकि, मैं उन प्रकारों को प्रतिबंधित करना चाहता हूं जो केवल पीओडी हैं, और साथ ही आकार या छोटे एक शून्य * की तुलना में।वैराडिक टेम्पलेट्स और टाइप ट्रेट्स
शून्य * जांच, आसान था मैं तो बस ऐसा किया:
static_assert(sizeof...(Args) <= sizeof(PVOID), "Size of types must be <= memsize.");
हालांकि मैं बाहर काम नहीं कर सकता कैसे std :: is_pod के लिए भी ऐसा ही करने के लिए।
क्या यह संभव है?
'sizeof ... (args)' शायद आप क्या चाहते हैं नहीं करता है - यह तर्क देता है कि तर्क पैक में कितने तर्क हैं (और उनके आकार नहीं)। [यह] देखें (http://ideone.com/X8X3p)। यदि आप अपने आकार को सीमित करना चाहते हैं, तो 'स्थिर कॉन्स बूल वैल्यू = आकार (हेड) <= sizeof (void *) && जैसे कुछ कर रहे हैं ...' मदद करेगा, यह देखें [http://ideone.com/PUMXx)। – Vitus