Sams Publishing

Total Page:16

File Type:pdf, Size:1020Kb

Sams Publishing 00 0672324806 FM 12/12/02 2:40 PM Page i Bob Swart, Mark Cashman, Paul Gustavson, and Jarrod Hollingworth Borland C++Builder 6 Developer’s Guide 201 West 103rd Street, Indianapolis, Indiana 46290 00 0672324806 FM 12/12/02 2:40 PM Page ii Borland C++Builder 6 Developer’s Guide Associate Publisher Michael Stephens Copyright © 2003 by Sams Publishing All rights reserved. No part of this book shall be reproduced, stored Acquisitions Editor in a retrieval system, or transmitted by any means, electronic, Carol Ackerman mechanical, photocopying, recording, or otherwise, without Development Editor written permission from the publisher. No patent liability is Songlin Qiu assumed with respect to the use of the information contained herein. Although every precaution has been taken in the prepara- Managing Editor tion of this book, the publisher and author assume no responsibil- Charlotte Clapp ity for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein. Project Editor Matthew Purcell International Standard Book Number: 0-672-32480-6 Copy Editor Library of Congress Catalog Card Number: 2002109779 Chip Gardner Printed in the United States of America Indexer First Printing: December 2002 Erika Millen 05 04 03 02 4321 Proofreaders Leslie Joseph Trademarks Suzanne Thomas All terms mentioned in this book that are known to be trademarks Technical Editor or service marks have been appropriately capitalized. Sams Paul Qualls Publishing cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity Team Coordinator of any trademark or service mark. Lynne Williams Multimedia Developer Warning and Disclaimer Dan Scherf Every effort has been made to make this book as complete and as Interior Designer accurate as possible, but no warranty or fitness is implied. The Gary Adair information provided is on an “as is” basis. The authors and the publisher shall have neither liability nor responsibility to any Cover Designer person or entity with respect to any loss or damages arising from Alan Clements the information contained in this book or from the use of the CD or programs accompanying it. Page Layout Juli Cook Graphics Steve Adams Tammy Graham Oliver Jackson Laura Robbins 00 0672324806 FM 12/12/02 2:40 PM Page iii Contents at a Glance Introduction .................................................................................1 Part I C++Builder Essentials 5 1 Introduction to C++Builder .............................................................7 2 C++Builder Projects and More on the IDE ........................................33 3 Programming in C++Builder...........................................................81 4 Creating Custom Components .....................................................185 5 Creating Property and Component Editors .....................................291 Part II Database Programming 373 6 Borland Database Component Architecture.....................................375 7 Database Programming................................................................383 8 The Borland Database Engine .......................................................397 9 Client Datasets and Client Dataset Enhancements ...........................409 10 Interbase Express Component Overview .........................................417 11 ADO Express Components for C++Builder ......................................435 12 Data Access with dbExpress ..........................................................453 13 XML Document Programming and XML Mapper .............................467 Part III Windows Programming 489 14 Win 32 API Functional Areas ........................................................491 15 Graphics and Multimedia Techniques ............................................579 16 DLLs ........................................................................................627 17 COM Programming ....................................................................667 Part IV Distributed Computing 713 18 DCOM: Going Distributed ...........................................................715 19 SOAP and Web Services with BizSnap.............................................749 20 Distributed Applications with DataSnap .........................................775 21 DataSnap Multitier Connections ...................................................811 22 Web Server Programming with WebSnap ........................................835 00 0672324806 FM 12/12/02 2:40 PM Page iv Part V Open Tools API 875 23 The Tools API: Extending the Borland IDE ......................................877 Part VI Appendixes 929 A C++Builder Example Applications..................................................931 B C++ Mobile Application Development ...........................................945 C Information Resources.................................................................973 D Enabling TXMLDocument for C++Builder Professional .....................993 Index......................................................................................1009 00 0672324806 FM 12/12/02 2:40 PM Page v Table of Contents Introduction 1 Who Should Read This Book? .........................................................1 How This Book Is Organized ...........................................................2 The Companion CD-ROM ..............................................................3 C++Builder System Requirements ....................................................3 Conventions Used in This Book ......................................................3 Part I C++Builder Essentials 5 1 Introduction to C++Builder 7 C++ Language ..............................................................................8 ANSI Compliance ..................................................................8 Microsoft Compatibility .......................................................10 Recommended Language References .......................................11 Borland Language Extensions and Standard Objects ..................11 try/finally .......................................................................14 The VCL, Forms, and Components .................................................14 The Form ...........................................................................15 The Component Palette ........................................................15 Events and Event Handlers ....................................................15 Testing the Program .............................................................18 Creating Your First Real Program ....................................................18 Commonly Asked Questions .........................................................24 What’s New in C++Builder 6? ........................................................25 Compatibility with Previous Releases—Projects .........................26 Compatibility with Previous Releases—Standard C++ Library ......26 Compatibility with Previous Releases—Database Program Changes ...........................................................................27 Compatibility with Previous Releases—DsgnIntf Renamed and Split Up .....................................................................27 Other New Features .............................................................27 Linux, Kylix, CLX, EJB, and C++Builder ..........................................28 CLX Overview ....................................................................28 Cross-Platform Help System Integration ..................................29 Simplified IDL, IIOP, and EJB .................................................29 00 0672324806 FM 12/12/02 2:40 PM Page vi vi Borland C++Builder 6 Developer’s Guide The C++ Standard Library .............................................................30 Containers .........................................................................30 Memory Management ..........................................................32 Summary ...................................................................................32 2 C++Builder Projects and More on the IDE 33 C++Builder IDE Features ...............................................................33 Main Window and Toolbars ..................................................33 Project Manager ..................................................................34 Arranging Windows in the IDE ..............................................34 Object Inspector ..................................................................36 Property Categories in the Object Inspector .............................37 The Object Tree View ...........................................................39 Source Code Editor ..............................................................39 Forms—Save As Text ............................................................43 Understanding C++Builder Projects ................................................44 Files Used in C++Builder Projects ...........................................45 Project Manager ..................................................................48 Different Builds for Different Files ..........................................49 Custom Build Tools ..............................................................50 Drag and Drop within Tree to Reorder Compilation ..................52 Understanding and Using Packages ................................................53 Considerations When Using Packages .....................................57 Using the C++Builder Interactive Debugger

  1128
Recommended publications
  • Universidade Salvador – Unifacs Programa De Pós-Graduação Em Redes De Computadores Mestrado Profissional Em Redes De Computadores
    UNIVERSIDADE SALVADOR – UNIFACS PROGRAMA DE PÓS-GRADUAÇÃO EM REDES DE COMPUTADORES MESTRADO PROFISSIONAL EM REDES DE COMPUTADORES DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Salvador 2005 DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Dissertação apresentada ao Mestrado Profissional em Redes de Computadores da Universidade Salvador – UNIFACS, como requisito parcial para obtenção do grau de Mestre. Orientador: Prof. Dr. Manoel Gomes de Mendonça. Salvador 2005 Lessa, Demian Interfaces gráficas com o usuário: uma abordagem baseada em padrões / Demian Lessa. – Salvador, 2005. 202 f.: il. Dissertação apresentada ao Mestrado Profissional em Redes de Computadores da Universidade Salvador – UNIFACS, como requisito parcial para a obtenção do grau de Mestre. Orientador: Prof. Dr. Manoel Gomes de Mendonça. 1. Interfaces gráficas para usuário - Sistema de computador. I. Mendonça, Manoel Gomes de, orient. II. Título. TERMO DE APROVAÇÃO DEMIAN LESSA INTERFACES GRÁFICAS COM O USUÁRIO: UMA ABORDAGEM BASEADA EM PADRÕES Dissertação aprovada como requisito parcial para obtenção do grau de Mestre em em Redes de Computadores da Universidade Salvador – UNIFACS, pela seguinte banca examinadora: Manoel Gomes de Mendonça – Orientador _________________________________ Doutor em Ciência da Computação pela Universidade de Maryland em College Park, Estados Unidos Universidade Salvador - UNIFACS Celso Alberto Saibel Santos ____________________________________________ Doutor em Informatique Fondamentalle et Parallelisme pelo Université Paul Sabatier de Toulouse III, França Universidade Federal da Bahia – UFBA Flávio Morais de Assis Silva _____________________________________________ Doutor em Informática pelo Technische Universität Berlin, Alemanha Universidade Federal da Bahia – UFBA Salvador de de 2005 A meus pais, Luiz e Ines, pelo constante incentivo intelectual e, muito especialmente, por todo amor e carinho repetidamente demonstrados.
    [Show full text]
  • Using the GNU Compiler Collection (GCC)
    Using the GNU Compiler Collection (GCC) Using the GNU Compiler Collection by Richard M. Stallman and the GCC Developer Community Last updated 23 May 2004 for GCC 3.4.6 For GCC Version 3.4.6 Published by: GNU Press Website: www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 59 Temple Place Suite 330 Tel 617-542-5942 Boston, MA 02111-1307 USA Fax 617-542-2652 Last printed October 2003 for GCC 3.3.1. Printed copies are available for $45 each. Copyright c 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being \GNU General Public License" and \Funding Free Software", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction ...................................... 1 1 Programming Languages Supported by GCC ............ 3 2 Language Standards Supported by GCC ............... 5 3 GCC Command Options .........................
    [Show full text]
  • Embrace and Extend Approach (Red Hat, Novell)
    Integrated Development Environments (IDEs) Technology Strategy Chad Heaton Alice Park Charles Zedlewski Table of Contents Market Segmentation.............................................................................................................. 4 When Does the IDE Market Tip? ........................................................................................... 6 Microsoft & IDEs ................................................................................................................... 7 Where is MSFT vulnerable?................................................................................................. 11 Eclipse & Making Money in Open Source........................................................................... 12 Eclipse and the Free Rider Problem ..................................................................................... 20 Making Money in an Eclipse World?................................................................................... 14 Eclipse vs. Microsoft: Handicapping the Current IDE Environment ................................... 16 Requirements for Eclipse success......................................................................................... 18 2 Overview of the Integrated Development Environment (IDE) Market An Integrated Development Environment (IDE) is a programming environment typically consisting of a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder. The IDE may be a standalone application or may be included as part of one or more existing
    [Show full text]
  • VERSION 2.0 Referene MANUAL
    VERSION 2.0 REFERENe MANUAL BORlAnD INTERNATIONAL Borland International 4113 Scotts Valley Drive Scotts Valley, California 95066 Copyright Notice© This software package and manual are copyrighted 1983, 1984 by BORLAND INTERNATIONAL Inc. All rights reserved worldwide. No part of this publication may be reproduced, transmitted, transcribed, stored in any retrieval system, or translated into any language by any means without the express written per­ mission of BORLAND INTERNATIONAL Inc., 4113 Scotts Valley Drive, Scotts Valley, CA 95066, USA. Single CPU License The price paid for one copy of TURBO Pascal licenses you to use the product on one CPU when and only when you have signed and returned the License Agreement printed in this book. Disclaimer Borland International makes no warranties as to the contents of this manual and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Borland International further reserves the right to make changes to the specifications of the program and contents of the manual without obligation to notify any person or organization of such changes. Fifth edition, October 1984 Printed in the United States of America 98765 TABLE OF CONTENTS INTRODUCTION ............................................. 1 The Pascal Language .........................................1 TURBO Pascal ..............................................1 Structure of This Manual ..................................... 2 Typography ............................................... 3 Syntax Descriptions
    [Show full text]
  • The GNU Compiler Collection on Zseries
    The GNU Compiler Collection on zSeries Dr. Ulrich Weigand Linux for zSeries Development, IBM Lab Böblingen [email protected] Agenda GNU Compiler Collection History and features Architecture overview GCC on zSeries History and current status zSeries specific features and challenges Using GCC GCC optimization settings GCC inline assembly Future of GCC GCC and Linux Apache Samba mount cvs binutils gdb gcc Linux ls grep Kernel glibc DB2 GNU - essentials UDB SAP R/3 Unix - tools Applications GCC History Timeline January 1984: Start of the GNU project May 1987: Release of GCC 1.0 February 1992: Release of GCC 2.0 August 1997: EGCS project announced November 1997: Release of EGCS 1.0 April 1999: EGCS / GCC merge July 1999: Release of GCC 2.95 June 2001: Release of GCC 3.0 May/August 2002: Release of GCC 3.1/3.2 March 2003: Release of GCC 3.3 (estimated) GCC Features Supported Languages part of GCC distribution: C, C++, Objective C Fortran 77 Java Ada distributed separately: Pascal Modula-3 under development: Fortran 95 Cobol GCC Features (cont.) Supported CPU targets i386, ia64, rs6000, s390 sparc, alpha, mips, arm, pa-risc, m68k, m88k many embedded targets Supported OS bindings Unix: Linux, *BSD, AIX, Solaris, HP/UX, Tru64, Irix, SCO DOS/Windows, Darwin (MacOS X) embedded targets and others Supported modes of operation native compiler cross-compiler 'Canadian cross' builds GCC Architecture: Overview C C++ Fortran Java ... front-end front-end front-end front-end tree Optimizer rtx i386 s390 rs6000 sparc ... back-end back-end back-end
    [Show full text]
  • Adapting MSP to Microsoft C++ ©James T. Smith, 1999 1. Introduction A. General Comments I. Purpose
    Adapting MSP to Microsoft C++ ©James T. Smith, 1999 1. Introduction a. General comments i. Purpose (1) MSP was developed in a PC environment with the original version of Borland C++, then adapted in several stages to Version 5.0, the standard for this book. Many readers, however, prefer to or must use a different compiler. The environment most frequently mentioned that is somewhat close to the book’s is Microsoft’s. This file describes my adaptation of MSP as a suite of Microsoft Visual C++ Win32 Console Applications. (2) It’s an adaptation guide, not a completed product. Most MSP features described in this book work under the adaptation, but it has not been used for further development. With it, you can see how these features work in your Microsoft environment. To use it for a major project, however, you’ll probably want to select only the appropriate MSP modules. You’ll need to test the adaptation much more thoroughly, and probably add minor cor- rections as needed by your specific application. ii. Major differences (1) Microsoft’s complex mathematics module is implemented with templates. That adds more levels of implicit conversions for the compiler to consider when resolving overloaded function declarations. Many more ambiguities would result, and some methods MSP uses to resolve them would no longer work. This would cause so many changes that you’d lose sight of the rest. So the adaptation contains a completely rewritten complex module. (2) Microsoft handles hardware faults, such as overflow detected by the floating-point processor, by throwing“structured exceptions”.
    [Show full text]
  • Section “Common Predefined Macros” in the C Preprocessor
    The C Preprocessor For gcc version 12.0.0 (pre-release) (GCC) Richard M. Stallman, Zachary Weinberg Copyright c 1987-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled \GNU Free Documentation License". This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Table of Contents 1 Overview :::::::::::::::::::::::::::::::::::::::: 1 1.1 Character sets:::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Initial processing ::::::::::::::::::::::::::::::::::::::::::::::: 2 1.3 Tokenization ::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.4 The preprocessing language :::::::::::::::::::::::::::::::::::: 6 2 Header Files::::::::::::::::::::::::::::::::::::: 7 2.1 Include Syntax ::::::::::::::::::::::::::::::::::::::::::::::::: 7 2.2 Include Operation :::::::::::::::::::::::::::::::::::::::::::::: 8 2.3 Search Path :::::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.4 Once-Only Headers::::::::::::::::::::::::::::::::::::::::::::: 9 2.5 Alternatives to Wrapper #ifndef ::::::::::::::::::::::::::::::
    [Show full text]
  • AIM104-Software Library
    2192-09193-000-000 AIM104-Software Library Software A Utility Disk is supplied with your AIM104. It contains a host of software utilities designed specifically for each AIM104. Please refer to the README.TXT file on the disk for further information. It also includes a test program EXAMP-01.EXE which may be used to confirm access to the board. Introduction Arcom Control Systems produces a complete range of high quality Input/Output (I/O) cards for the PC104 bus. In order to support these I/O cards as fully as possible a complimentary set of high quality software support products is also available. This software library forms part of the software support. This software support has been developed to support Borland C++ versions 3.1 and 4.52, running on 386 CPUs, Pentium CPUs and Arcom Target boards, in both DOS and Windows operating systems. It is presented to the user in the form of standard static library files. This library can then be incorporated into custom application code giving the user all the software facilities needed to use all the hardware features included on an Arcom PC104 I/O card. This manual contains the basic details of what is contained within this library. For a more detailed description please read the Word 2.0 file genman.doc contained in the DOCS sub-directory of the installation disk or in the DOCS sub-directory of the directory you install to. The list below shows the boards supported within the scope of this library. All commonly used modules are listed, however those that fall outside this list are not supported within this software library.
    [Show full text]
  • Lotus V. Borland: Defining the Limits of Software Copyright Protection Jason A
    Santa Clara High Technology Law Journal Volume 12 | Issue 1 Article 7 January 1996 Lotus v. Borland: Defining the Limits of Software Copyright Protection Jason A. Whong Andrew T. S. Lee Follow this and additional works at: http://digitalcommons.law.scu.edu/chtlj Part of the Law Commons Recommended Citation Jason A. Whong and Andrew T. S. Lee, Lotus v. Borland: Defining the Limits of Software Copyright Protection, 12 Santa Clara High Tech. L.J. 207 (1996). Available at: http://digitalcommons.law.scu.edu/chtlj/vol12/iss1/7 This Case Note is brought to you for free and open access by the Journals at Santa Clara Law Digital Commons. It has been accepted for inclusion in Santa Clara High Technology Law Journal by an authorized administrator of Santa Clara Law Digital Commons. For more information, please contact [email protected]. CASENOTE LOTUS V. BORLAND: DEFINING THE LIMITS OF SOFTWARE COPYRIGHT PROTECTION Lotus Development Corporationv. BorlandInternational, Inc., 49 F.3d 807 (1st Cir. 1995)* Jason A. Whongt and Andrew T.S. Leet TABLE OF CONTENTS INTRODUCTION .............................................. 207 BACKGROUND .............................................. 209 D ISCUSSION ................................................ 211 A. Method of Operation ................................ 211 B. Computer Associates International,Inc. v. Altai, Inc... 215 CONCLUSION ................................................ 216 "[E]verything ... has been done already ... who are we to improve upon them? We can only attempt, respectfally, to repeat."' INTRODUCTION On January 16, 1996, only eight days after hearing oral argu- ments in the case, an equally divided2 Supreme Court let stand the First Circuit's decision in Lotus Development Corp. v. Borland Inter- * Copyright @ 1995 Jason A. Whong and Andrew T.S.
    [Show full text]
  • Appendix 1 the Borland Pascal Package
    Section 1. Installation 555 Appendix 1 The Borland Pascal Package Section 1. Installation When you open your carton of Borland Pascal, you may be frightened by the tens of kilos of books and mountain of disks. This Appendix will get you started on installation and use of the system to write your Pascal programs. Even if you have already installed Borland Pascal and are using it, you may find some useful tips here, so please thumb through these pages. (There is much useful information in the Borland Pascal User's Guide, which is in your package.) For starters, your computer should have a goodly chunk of free disk space in one hard disk partition. If you install the complete Borland Pascal system, that will take about 30M. The programs with this book will fill about 2M, and when you start writing programs, who knows? Before you start installation, decide which partition to use, and note how much free disk space is available. Don't push a partition to its absolute limit. Start the "Install" program by inserting Disk 1 into the A: drive and typing A:INSTALL <Enter> (By the time this book appears you will probably be able to acquire BP on CD­ ROM and install it that way.) The "Install" program gives you lots of options, and explains what it is doing as it runs. If you have adequate disk space, the easiest course is to install everything. If you want to install only what you need for using this book, when the "Install" program prompts you for what to install/omit, you can omit the Windows version, the Assembler, the Profiler, the Debugger, the Turbo Vision package, and the On-line compilers.
    [Show full text]
  • Microsoft Visual Studio: an Integrated Windows Program Development Environment
    Microsoft Visual Studio: An Integrated Windows Program Development Environment Microsoft Visual Studio • Self-contained environment for Windows program development: – Creating/editing – Compiling/linking (building) – Testing/debugging • IDE that accompanies Visual C++, Visual Basic, Visual C#, and other Microsoft Windows programming languages • See Chapter 2 & Appendix C of the Deitel text • Also Appendix C of the Gregory text Some Visual Studio Components • The Editors: C, C++, C#, VB source program text editors • cut/paste, color cues, indentation • generate source text files Resource Editors • Resources: Windows static data • Determine look and feel of an application – icons, bitmaps, cursors, menus, dialog boxes, etc. • graphical • generate resource script (.rc) files • integrated with text editor • created visually .NET Language Compilers • Unmanaged Code C/C++ Compiler – translates source programs to machine language – generates object (.obj) files for linker • Managed Code .NET Language Compilers – Many of them ? multi-language interoperability – Translate source programs to MSIL – Generate a “Portable Executable” that must be translated to target machine language by the CLR • Resource Compiler – Reads .rc file – Generates binary resource (.res) file for linker The Linker • Reads compiler .obj and .res files • Accesses C/C++/Windows libraries • Generates executable (.exe or .dll) Program Build and Run in the .NET Framework Common Language Runtime The Debugger • Powerful source code debugger • Integrated with all parts of Visual
    [Show full text]
  • Migrating Large Codebases to C++ Modules
    Migrating large codebases to C++ Modules Yuka Takahashi - The University of Tokyo Princeton University Oksana Shadura - UNL Vassil Vassilev Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !1 Agenda 1. Motivation of C++ Modules 2. C++ Modules in ROOT 3. C++ Modules in CMSSW 4. CMS Performance Results 5. Conclusion Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !2 Motivation of C++ Modules Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !3 Motivation of C++ Modules C++ Modules technology: - Cache parsed header file information - Avoid header re-parsing - Avoid runtime header parsing (In ROOT) - Part of C++20 Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !4 Motivation of C++ Modules #include <vector> Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !5 Motivation of C++ Modules #include <vector> Textual Include Precompiled Headers (PCH) Modules Expensive Inseparable Fragile Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !6 Motivation of C++ Modules …… TVirtualPad.h …… # 286 "/usr/include/c++/v1/vector" 2 3 #include "TVirtualPad.h" namespace std { inline namespace __1 { template <bool> class __vector_base_common vector #include <vector> Preprocess { __attribute__ #include <set> ((__visibility__("hidden"), __always_inline__)) __vector_base_common() Textual Include{} …… int main() { # 394 "/usr/include/c++/v1/set" 3 namespace std {inline namespace __1 { … set template <…> class set { original code public: typedef _Key key_type; …… .o Compile Parse int main { one big file! …… Yuka Takahashi 13.03.2019 Migrating large codebases to C++ Modules, ACAT 2019 !7 Motivation of C++ Modules Textual Include .c .o 1.
    [Show full text]