File: boost_interprocess.natvis

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (27 lines) | stat: -rw-r--r-- 1,259 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2024 Braden Ganetsky.
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-->

<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

    <Type Name="boost::interprocess::offset_ptr&lt;*&gt;" Inheritable="false">
        <!-- This is a simplified and inlined version of `offset_ptr::get()` -->
        <Intrinsic Name="get" Expression="(internal.m_offset == 1) ? (pointer)nullptr : (pointer)((unsigned char*)this + internal.m_offset)" />
        <Intrinsic Name="boost_to_address" ReturnType="pointer" Expression="get()" />

        <!-- This is a simplified and inlined version of `offset_ptr::operator+=()` -->
        <Intrinsic Name="boost_next" ReturnType="pointer" Expression="(pointer)( (unsigned char*)(ptr) + (offset_type)(offset * (difference_type)sizeof(element_type)) )">
            <Parameter Name="ptr" Type="pointer" />
            <Parameter Name="offset" Type="difference_type" />
        </Intrinsic>

        <DisplayString>{get()}</DisplayString>
        <Expand>
            <ExpandedItem>get()</ExpandedItem>
        </Expand>
    </Type>

</AutoVisualizer>