Template Metaprogramming: Type Traits## CppCon 2020 Template Metaprogramming: Type Traits Part 1 Jody Hagins jhagins@maystreet.com coachhagins@gmail.com ## CppCon 2020 Template Metaprogramming: Type Traits Introduction ## I ntended Audience shallow depth, slow current - Not necessarily beginner to C++, but beginner to traditional template metaprogramming techniques ## I ntended Audience • Beginner/Intermediate • Gentle entry: swimming pool shallow depth, slow current - Not necessarily beginner to C++, but beginner to traditional template metaprogramming techniques • Type traits part of standard library for ~10 years ## I ntended Audience0 码力 | 403 页 | 5.30 MB | 1 年前3
Template-Less Meta-Programming## Template-Less MetaProgramming 0 ## +24 ## KRIS JUSIAK 2024 September 15 - 20 ## Template Metaprogramming (TMP) templateusing meta_fun = this_talk ## static_assert(Template::Metaprogramming::is_hard); // ✓ ?static_assert(Template::Metaprogramming::is_hard); // ✓ ?static_assert(Template::Metaprogramming::is_powerful); // ✓ ?static_assert(Template::Metapr static_assert(Template::Metaprogramming::is_powerful); // ✓ ?static_assert(( Template::Metaprogramming::is_easy and Template::Metaprogramming::is_powerful and Template::Metaprogramming::has_nice_error_messages; 0 码力 | 130 页 | 5.79 MB | 1 年前3
Reflection Based Libraries to Look Forward Tomember_info.name() << std::endl; ## How is this different from metaprogramming? ## Reflection vs metaprogramming ## • Not much:) • Operate on values instead of types ☐ Syntactic difference “Lifts” into reflection land • function • type • variable and friends non-static data member • template • namespace ... ## ☀️ ☁️ ☁️ 1 using namespace std::meta; 3 auto magic_reflection_method(info Elevator pitch ## Enum to String ## ● ● ● 1 enum class MyEnum { VALUE_1, VALUE_2, MAX_VALUES }; templateconstexpr std::string enum_to_string(EnumT enum_value) { std::string result 0 码力 | 118 页 | 14.33 MB | 1 年前3
Compile-Time Validationif constexpr (error) { report_error<*error>(); } }; ## Error Message templateconstexpr auto report_error() { static_assert(sizeof(error) == 0); ' Compiler returned: 1 ## Error Message templateinline constexpr auto always_false = sizeof(error) == 0; template constexpr auto report_error() { s x{42}> ## fixed_str A wrapper around a fixed size array that represents a compile-time string template struct fixed_str { constexpr fixed_str(const char(&str)[N]) { std::copy(str 0 码力 | 137 页 | 1.70 MB | 1 年前3
Julia 1.9.0 rc1 DocumentationFunctions & Methods ..... 220 17.4 Advanced Usage ..... 221 17.5 Syntax Guide ..... 222 18 Metaprogramming ..... 227 18.1 Program representation ..... 227 18.2 Expressions and evaluation ..... 230 Powerful shell-like capabilities for managing other processes • Lisp-like macros and other metaprogramming facilities ## Chapter 2 ## Getting Started Julia installation is straightforward, whether using packages may also define new non-standard string literals. Further documentation is given in the Metaprogramming section. ### 7.9 Regular Expressions Sometimes you are not looking for an exact string, but0 码力 | 1644 页 | 5.27 MB | 2 年前3
Back to Basics: C++ Templates - Part 2## V ariadic templates: Parameter pack ## ■ Syntax: A typename|class... Ts generates a type template parameter pack with optional name. B Args... ts a function argument parameter pack with optional D ts... in the body of a function to unpack the arguments. 1 templatetemplate="" 4="" constexpr="" auto="" 5="" min(const="" t&="" a,="" const="" std::string(t); } 5 Catch all others and apply to_string 6 template auto Normalize(const T& t) { return std::to_string(t); } 7 template auto _StrCat(std::string& 0 码力 | 12 页 | 787.22 KB | 1 年前3
An Introduction to Lean4.3 Induction and Calculation 42 4.4 Axioms 45 5 Using Automation in Lean 46 6 Metaprogramming in Lean 47 Bibliography # Overview This introduction offers a tour of Lean and its features results are indeed correct. Which brings us to yet another aspect of Lean, namely, its role as a metaprogramming language. Many of Lean’s internal data structures and procedures are exposed and available within language of Lean itself, via a monadic interface. We refer to the use of these procedures as “metaprogramming” because they take us outside the formal framework: the access points to the API are declared0 码力 | 48 页 | 191.92 KB | 2 年前3
Django 5.0.x Documentation• Write views that actually do something • Raising a 404 error • Use the template system • Removing hardcoded URLs in templates • Namespacing URL names classes Working with form templates Further topics Templates - The Django template language - Support for template engines Class-based views - Introduction to class-based views - Built-in Django's cache framework - Setting up the cache - The per-site cache - The per-view cache - Template fragment caching - The low-level cache API - Asynchronous support - Downstream caches - Using0 码力 | 3407 页 | 3.21 MB | 2 年前3
Back to Basics Conceptsjosuttis.com 3 josuttis | eckstein IT communication ## Generic Function to Insert a Value C++98 templatevoid add(CollT& coll, const T& val) { coll.push_back(val); me> Overloading Function Templates template void add(CollT& coll, const T& val) { coll.push_back(val); } template communication Constraints with Concepts C++20 template concept HasPushBack = requires (CollT c, CollT::value_type v) { c.push_back(v); }; template requires 0 码力 | 23 页 | 2.14 MB | 1 年前3
Beautiful Native Mobile Apps with NativeScript and OpenEdgea1ad2e19b/p1_1.jpg) ## Agenda OpenEdge Data Service Architecture JSDO DataSource ☐ Starter Template ■ Demo ■ Next Steps ## Progress $ ^{®} $ OpenEdge $ ^{®} $  ## Starter Template ☑ Create using: • tns create--template tns-template-master-detail-progress-ng ail-progress-ng ☑ Based on the NativeScript template-master-detail-ng ■ Provides CRUD support ☑ Optional login page with the following authentication models: • Anonymous Basic Form EXPLORER0 码力 | 27 页 | 1.54 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100
相关搜索词
metaprogramming techniquestype traitsspecializationprimary templatemetafunctionsTemplate Metaprogrammingboost.mp11Circle-langvalue-based metaprogrammingcompile timeReflectionC++Python bindingsABI hashingTemplate metaprogrammingCompile-Time ValidationMitziconstexprtemplate metaprogrammingC++23JuliaREPLCrashesMetaprogrammingvariadic templatesfold expressionstemplate template parametersvariable templatesSFINAELeandependent type theorytacticsmetaprogrammingautomationDjangoORMadmintemplateformconceptcollttrequiresJSDONativeScriptOpenEdgeDataSourceStarter Template













