Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
The annotated C++ reference manual
The annotated C++ reference manual
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Curiously recurring template patterns
C++ Report
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Object-oriented framework and product lines
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Generative Programming (GP) with C++
JMLC '97 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Specifying Reusable Components Using Contracts
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Using C++ Templates to Implement Role-Based Designs
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Implementing Reusable Object-Oriented Components
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
A programming language for writing domain-specific software system generators
A programming language for writing domain-specific software system generators
Implementing large-scale object-oriented components
Implementing large-scale object-oriented components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Mixin programming in Java with reflection and dynamic invocation
PPPJ '02/IRE '02 Proceedings of the inaugural conference on the Principles and Practice of programming, 2002 and Proceedings of the second workshop on Intermediate representation engineering for virtual machines, 2002
Adaptable Components for Software Product Line Engineering
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Debugging C++ template metaprograms
Proceedings of the 5th international conference on Generative programming and component engineering
Proceedings of the 2007 ACM symposium on Applied computing
Dynamic algorithm selection for runtime concepts
Science of Computer Programming
An architecture for generic extensions
Science of Computer Programming
BehaveRT: a GPU-based library for autonomous characters
MIG'10 Proceedings of the Third international conference on Motion in games
Reusable software components for accelerator-based clusters
Journal of Systems and Software
LEMON - an Open Source C++ Graph Template Library
Electronic Notes in Theoretical Computer Science (ENTCS)
AOP++: a generic aspect-oriented programming framework in c++
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
A feature composition problem and a solution based on c++ template metaprogramming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Template constructors for reusable object initialization
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Reified type parameters using Java annotations
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Combinations of C++ features, like inheritance, templates, and class nesting, allow for the expression of powerful component patterns. In particular, research has demonstrated that, using C++ mixin classes, one can express layered component-based designs concisely with efficient implementations. In this paper, we discuss pragmatic issues related to component-based programming using C++ mixins. We explain surprising interactions of C++ features and policies that sometimes complicate mixin implementations, while other times enable additional functionality without extra effort.