คำถามติดแท็ก templates

เทมเพลตแท็กใช้ในหลายบริบท: การเขียนโปรแกรมทั่วไป (โดยเฉพาะ C ++) และการสร้างข้อมูล / เอกสารโดยใช้เทมเพลตเอนจิ้น เมื่อใช้แท็กนี้กับคำถามที่มีการใช้งานหนัก - ติดแท็กรหัสภาษาที่มีการใช้งาน

4
วิธีใช้ความคิดเห็นในเทมเพลต Handlebar
ฉันใช้ Handlebar.js เป็นเครื่องมือสร้างเทมเพลต ตอนนี้ฉันต้องการแสดงความคิดเห็นเกี่ยวกับบล็อกบางส่วนในเทมเพลตแฮนเดิลบาร์ของฉัน แต่แล้วฉันก็รู้ว่า Handlebar ไม่ได้เพิกเฉยต่อการแสดงออกในบล็อกความคิดเห็นของ Handlebar วิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?

16
ตรวจสอบว่าคลาสมีฟังก์ชันสมาชิกของลายเซ็นที่กำหนดหรือไม่
ฉันกำลังขอเคล็ดลับเทมเพลตเพื่อตรวจสอบว่าชั้นเรียนมีฟังก์ชันสมาชิกเฉพาะของลายเซ็นที่กำหนดหรือไม่ ปัญหาคล้ายกับที่อ้างถึงที่นี่ http://www.gotw.ca/gotw/071.htm แต่ไม่เหมือนกัน: ในรายการหนังสือของซัตเทอร์เขาตอบคำถามที่คลาส C ต้องให้ฟังก์ชันสมาชิกด้วย ลายเซ็นเฉพาะมิฉะนั้นโปรแกรมจะไม่รวบรวม ในปัญหาของฉันฉันต้องทำอะไรบางอย่างถ้าคลาสมีฟังก์ชันนั้นให้ทำ "อย่างอื่น" ประสบปัญหาที่คล้ายกันโดย boost :: serialization แต่ฉันไม่ชอบวิธีแก้ปัญหาที่พวกเขานำมาใช้: ฟังก์ชันเทมเพลตที่เรียกใช้ฟังก์ชันฟรี (ที่คุณต้องกำหนด) โดยค่าเริ่มต้นด้วยลายเซ็นเฉพาะเว้นแต่คุณจะกำหนดฟังก์ชันสมาชิกเฉพาะ ( ในกรณีของพวกเขา "ทำให้เป็นอนุกรม" ที่ใช้พารามิเตอร์ 2 ตัวในประเภทที่กำหนด) โดยมีลายเซ็นเฉพาะมิฉะนั้นข้อผิดพลาดในการคอมไพล์จะเกิดขึ้น นั่นคือการใช้การทำให้เป็นอนุกรมทั้งแบบล่วงล้ำและไม่ล่วงล้ำ ฉันไม่ชอบวิธีแก้ปัญหานั้นด้วยเหตุผลสองประการ: เพื่อไม่ล่วงล้ำคุณต้องแทนที่ฟังก์ชัน "serialize" ทั่วโลกที่อยู่ใน boost :: serialization namespace ดังนั้นคุณจึงมีรหัสลูกค้าของคุณเพื่อเปิดการเพิ่มเนมสเปซและการทำให้เป็นอนุกรมเนมสเปซ! สแต็กเพื่อแก้ไขปัญหานั้นคือการเรียกใช้ฟังก์ชัน 10 ถึง 12 ฉันต้องการกำหนดพฤติกรรมที่กำหนดเองสำหรับคลาสที่ไม่มีฟังก์ชันสมาชิกนั้นและเอนทิตีของฉันอยู่ภายในเนมสเปซที่แตกต่างกัน (และฉันไม่ต้องการแทนที่ฟังก์ชันส่วนกลางที่กำหนดไว้ในเนมสเปซเดียวในขณะที่ฉันอยู่ในอีกอันหนึ่ง) คุณช่วยไขปริศนานี้ให้ฉันได้ไหม
135 c++  c++11  templates  sfinae 

24
Bash Templating: จะสร้างไฟล์คอนฟิกจากเทมเพลตด้วย Bash ได้อย่างไร?
ฉันกำลังเขียนสคริปต์เพื่อสร้างไฟล์กำหนดค่าอัตโนมัติสำหรับ Apache และ PHP สำหรับเว็บเซิร์ฟเวอร์ของฉันเอง ฉันไม่ต้องการใช้ GUI ใด ๆ เช่น CPanel หรือ ISPConfig ฉันมีเทมเพลตของไฟล์กำหนดค่า Apache และ PHP สคริปต์ Bash จำเป็นต้องอ่านเทมเพลตทำการแทนที่ตัวแปรและเทมเพลตที่แยกวิเคราะห์เอาต์พุตในบางโฟลเดอร์ วิธีที่ดีที่สุดคืออะไร? ฉันคิดได้หลายวิธี วิธีไหนดีที่สุดหรืออาจมีวิธีที่ดีกว่านั้นบ้าง ฉันต้องการทำแบบนั้นด้วย Bash ล้วนๆ (ตัวอย่างเช่น PHP ทำได้ง่าย) 1) จะแทนที่ตัวยึดตำแหน่ง $ {} ในไฟล์ข้อความได้อย่างไร template.txt: the number is ${i} the word is ${word} script.sh: #!/bin/sh #set variables i=1 word="dog" #read …

7
จะเข้าถึงค่าคงที่ของคลาสใน Twig ได้อย่างไร?
ฉันมีค่าคงที่ของคลาสสองสามตัวในคลาสเอนทิตีของฉันเช่น: class Entity { const TYPE_PERSON = 0; const TYPE_COMPANY = 1; } ใน PHP ปกติฉันมักจะทำif($var == Entity::TYPE_PERSON)และฉันต้องการทำสิ่งนี้ใน Twig เป็นไปได้ไหม?
133 php  templates  twig 

4
จะส่งต่อประกาศคลาสเทมเพลตในเนมสเปซ std ได้อย่างไร
#ifndef __TEST__ #define __TEST__ namespace std { template<typename T> class list; } template<typename T> void Pop(std::list<T> * l) { while(!l->empty()) l->pop(); } #endif และใช้ฟังก์ชันนั้นใน main ฉันได้รับข้อผิดพลาด แน่นอนฉันรู้ว่ามีพารามิเตอร์เทมเพลตเพิ่มเติมสำหรับstd::list(ฉันคิดว่าตัวจัดสรร) แต่ที่อยู่ข้างประเด็น ฉันต้องรู้การประกาศเทมเพลตแบบเต็มของคลาสเทมเพลตเพื่อส่งต่อประกาศได้หรือไม่ แก้ไข: ฉันไม่ได้ใช้ตัวชี้มาก่อน - มันเป็นข้อมูลอ้างอิง ฉันจะลองใช้ตัวชี้
131 c++  templates  g++ 

8
อย่างเป็นทางการชื่อประเภทมีไว้เพื่ออะไร?
ในบางครั้งฉันเคยเห็นข้อความแสดงข้อผิดพลาดที่อ่านไม่ออกจริงๆบางอย่างพ่นออกมาgccเมื่อใช้เทมเพลต ... โดยเฉพาะอย่างยิ่งฉันมีปัญหาที่การประกาศที่ดูเหมือนถูกต้องทำให้เกิดข้อผิดพลาดในการคอมไพล์ที่แปลกประหลาดซึ่งหายไปอย่างน่าอัศจรรย์โดยใส่typenameคำหลักไว้ที่จุดเริ่มต้นของ การประกาศ ... (ตัวอย่างเช่นเมื่อสัปดาห์ที่แล้วฉันประกาศตัววนซ้ำสองตัวเป็นสมาชิกของคลาสเทมเพลตอื่นและฉันต้องทำสิ่งนี้) ... เรื่องราวเกี่ยวกับtypenameอะไร?
131 c++  templates 

8
ใน Rails คุณสร้าง JSON โดยใช้มุมมองอย่างไร
สมมติว่าคุณอยู่ในตัวควบคุมผู้ใช้ของคุณและคุณต้องการได้รับการตอบกลับ json สำหรับคำขอการแสดงคงจะดีถ้าคุณสามารถสร้างไฟล์ในมุมมอง / ผู้ใช้ / dir ของคุณชื่อ show.json และหลังจากผู้ใช้ของคุณ # show การดำเนินการเสร็จสิ้นจะแสดงไฟล์ ขณะนี้คุณต้องทำบางสิ่งตามแนวของ: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json{ render :json => @user.to_json } end end แต่คงจะดีถ้าคุณสามารถสร้างไฟล์ show.json ซึ่งจะแสดงผลโดยอัตโนมัติดังนี้: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json end end …

5
ฉันจะเปลี่ยนเทมเพลต Javadocs ที่สร้างใน Eclipse ได้อย่างไร
ฉันไม่ชอบ Javadocs เริ่มต้นที่สร้างขึ้นสำหรับฉันเมื่อฉันสร้างคลาสหรือเมธอดโดยเฉพาะตัวแปร @author ซึ่งเป็นชื่อผู้ใช้ระบบปัจจุบันในกล่อง windows ของฉัน ฉันอยากจะเปลี่ยนมัน เป็นไปได้หรือไม่

13
ฉันจะสะท้อน HTML ใน PHP ได้อย่างไร
ฉันต้องการส่งออก HTML ตามเงื่อนไขเพื่อสร้างเพจดังนั้นวิธีใดที่ง่ายที่สุดในการสะท้อนตัวอย่าง HTML หลายบรรทัดใน PHP 4+ ฉันจะต้องใช้กรอบแม่แบบเช่น Smarty หรือไม่? echo '<html>', "\n"; // I'm sure there's a better way! echo '<head>', "\n"; echo '</head>', "\n"; echo '<body>', "\n"; echo '</body>', "\n"; echo '</html>', "\n";
122 php  html  templates  echo 

9
ตัวอย่าง C ++ SFINAE?
ฉันต้องการเข้าสู่การเขียนโปรแกรมเมตาเทมเพลตเพิ่มเติม ฉันรู้ว่า SFINAE ย่อมาจาก "ความล้มเหลวในการทดแทนไม่ใช่ข้อผิดพลาด" แต่ใครช่วยบอกวิธีใช้ SFINAE ให้ฉันดูหน่อยได้ไหม

4
โมดูลัส% ในเทมเพลต Django
ฉันกำลังมองหาวิธีใช้ตัวดำเนินการโมดูลัสใน django สิ่งที่ฉันพยายามทำคือเพิ่มชื่อคลาสให้กับทุกองค์ประกอบที่สี่ในลูป ด้วยโมดูลัสมันจะมีลักษณะดังนี้: {% for p in posts %} <div class="post width1 height2 column {% if forloop.counter0 % 4 == 0 %}first{% endif %}}"> <div class="preview"> </div> <div class="overlay"> </div> <h2>p.title</h2> </div> {% endfor %} แน่นอนว่าสิ่งนี้ใช้ไม่ได้เพราะ% เป็นอักขระที่สงวนไว้ มีวิธีอื่นในการทำเช่นนี้หรือไม่?
121 python  django  templates 

4
เทมเพลต <unsigned int N> หมายถึงอะไร
เมื่อประกาศเทมเพลตฉันคุ้นเคยกับการมีรหัสประเภทนี้: template &lt;class T&gt; แต่ในคำถามนี้พวกเขาใช้: template &lt;unsigned int N&gt; ฉันตรวจสอบว่าคอมไพล์ แต่มันหมายความว่าอย่างไร? เป็นพารามิเตอร์ที่ไม่ใช่ประเภทหรือไม่? และถ้าเป็นเช่นนั้นเราจะมีเทมเพลตโดยไม่มีพารามิเตอร์ประเภทใด ๆ ได้อย่างไร?
121 c++  templates 

11
เหตุใดฉันจึงใช้ค่าลอยเป็นพารามิเตอร์เทมเพลตไม่ได้
เมื่อฉันพยายามใช้floatเป็นพารามิเตอร์เทมเพลตคอมไพลเลอร์จะร้องหารหัสนี้ในขณะที่intทำงานได้ดี เป็นเพราะฉันไม่สามารถใช้floatเป็นพารามิเตอร์เทมเพลตได้หรือไม่? #include&lt;iostream&gt; using namespace std; template &lt;class T, T defaultValue&gt; class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() { return value; } }; int main() { GenericClass &lt;int, 10&gt; gcInteger; GenericClass &lt; float, 4.6f&gt; gcFlaot; cout &lt;&lt; "\n sum of integer is …

3
การใช้คำหลักแบบอินไลน์กับเทมเพลตมีความหมายหรือไม่?
เนื่องจากเท็มเพลตถูกกำหนดไว้ภายในส่วนหัวและคอมไพเลอร์สามารถระบุได้ว่าการอินไลน์ฟังก์ชั่นนั้นมีประโยชน์หรือไม่มันสมเหตุสมผลหรือไม่? ฉันได้ยินมาว่าคอมไพเลอร์สมัยใหม่รู้ดีกว่าเมื่อต้องอินไลน์ฟังก์ชันและไม่สนใจinlineคำใบ้ แก้ไข: ฉันต้องการยอมรับทั้งสองคำตอบ แต่ไม่สามารถทำได้ เพื่อปิดปัญหาฉันยอมรับคำตอบของวลีเนื่องจากได้รับการโหวตมากที่สุดและเขาก็ถูกต้องอย่างเป็นทางการ แต่อย่างที่ฉันพูดถึงในความคิดเห็นฉันถือว่าคำตอบของPuppyและComponent 10เป็นคำตอบที่ถูกต้องเช่นกันจากมุมมองที่แตกต่างกัน . ปัญหาอยู่ในความหมายของ C ++ ซึ่งไม่เข้มงวดในกรณีของinlineคีย์เวิร์ดและอินไลน์ วลีระบุว่า "เขียนอินไลน์ถ้าคุณหมายถึง" แต่ความหมายที่แท้จริงinlineยังไม่ชัดเจนเนื่องจากมีการพัฒนาจากความหมายดั้งเดิมไปเป็นคำสั่งที่ว่า "หยุดคอมไพเลอร์ที่ยุ่งเกี่ยวกับการละเมิด ODR" ตามที่Puppyกล่าว
119 c++  templates  inline 

20
วิธีแมป c ++ enums กับสตริงได้อย่างง่ายดาย
ฉันมี enum หลายประเภทในไฟล์ส่วนหัวของไลบรารีบางไฟล์ที่ฉันใช้และฉันต้องการมีวิธีการแปลงค่า enum เป็นสตริงผู้ใช้ - และในทางกลับกัน RTTI จะไม่ทำเพื่อฉันเพราะ 'สตริงผู้ใช้' ต้องอ่านได้มากกว่าการแจงนับเล็กน้อย โซลูชันกำลังเดรัจฉานจะมีฟังก์ชันมากมายเช่นนี้ แต่ฉันรู้สึกว่ามันเหมือน C มากเกินไป enum MyEnum {VAL1, VAL2,VAL3}; String getStringFromEnum(MyEnum e) { switch e { case VAL1: return "Value 1"; case VAL2: return "Value 2"; case VAL1: return "Value 3"; default: throw Exception("Bad MyEnum"); } } ฉันรู้สึกว่ามีวิธีแก้ปัญหาที่สวยงามโดยใช้เทมเพลต แต่ฉันยังไม่สามารถปัดหัวได้ อัปเดต:ขอบคุณสำหรับคำแนะนำ …
119 c++  templates  enums 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.