---
name: "sc_ForceLink"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_ForceLink"
---

# sc\_ForceLink(3)

This, together with ForceLinkBase, is used to force code for particular classes to be linked into executables.

## NAME

sc::ForceLink\< T, A \> - This, together with **ForceLinkBase**, is used to force code for particular classes to be linked into executables.

## SYNOPSIS

`#include <class.h>`

Inherits **sc::ForceLinkBase\< const Ref\< KeyVal \> & \>**.

### Public Member Functions

**DescribedClass** \* **create** (A a)\

## Detailed Description

### template\<class T, class A = const Ref\<KeyVal\> &\>

class sc::ForceLink\< T, A \>"This, together with **ForceLinkBase**, is used to force code for particular classes to be linked into executables.

Objects are created from input and checkpoint files by using class name lookup to find that class's **ClassDesc** object. The **ClassDesc** object has members that can create the class. Unfortunately, linking in a library doesn't cause code for the the **ClassDesc**, and thus the class itself, to be linked. **ForceLink** objects are created in linkage.h files for each library. The code containing the main routine for an executable can include these linkage files to force code for that library's classes to be linked.

## Author

Generated automatically by Doxygen for MPQC from the source code.
