[BUG]: cuda::std::extents::extent does not work in constexpr context if there is at least one dynamic_extent present
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
### Is this a duplicate?
- [X] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this bug and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)
### Type of Bug
Compile-time Error
### Component
libcu++
### Describe the bug
It's not possible to use extents::extent in for eg. static_assert even when statically known extent is queried if extents contain at least one dynamic_extent. If all extents are statically known, then extent works in constexpr contexts.
### How to Reproduce
https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIAruiakl9ZATwDKjdAGFUtEywYgATKUcAZPAZMADl3ACNMYhAADlIAB1QFQjsGFzcPPQSk2wEAoNCWCKiuS0xrHIYhAiZiAjT3Tx8rTBsUqpqCPJDwyJjLatr6jJKFAc7A7sLergBKS1QTYmR2DgBSLwBmQOQ3LABqVY2nU3MAelH0U5Z0BTjDQ%2BxVjQBBJ%2BfAgj2WJkCIGYOAOwAITeezBexOTBAIAu0MwqgIjAICkOTg%2BpD2JQhZihMII6Gh6AAnswWHhkAB9eGIwQYjYPPbwiBeGaHEEvcF7UZMWyUpgKJS1CDwgB01KREA0/0OABFZZjWRt2c9OZDobCQOLBCijujMRifHt6RtsIzVF42aDwdzeRT%2BYKCMLzWKERKpQcNnLPQrLS9VgCZRw5rROABWXieDhaUioThOOQylVOdYgrxArkLJaYA6bHikAiaINzADWIFDAE4ReWAGxecteaLVjYA2sAyQbUP6TiSCOFmOcXgKEAafOFuZwWAwRAoVAsOJ0SLkShoOcLqIMABuyGQXC8XhMJSwG/JmAAanhMAB3ADycUYfZotERxCHEDCfbCgRqRI/X%2BIROvMJtBaAtuF4Fc2EEa8GFoH8o14LAwhMYAnDEWghzA0gsG%2BIxxHgrC8GIEC8A3TAMOjeEWhMRE%2Bw%2BMo%2B1oPAwmIb8XCwPsCGIPAWE4Hg5ioAxgAUc8r1ve9MP4QQRDEdgpBkQRFBUdR8N0EoDCMFAcX0Jih0gOZUDiCoMN4VBSOILisF0v5SnKFIHAYZxXAaPR/AmAoikyRJkgEIZPBKLJvIYLp3OmGziIEdpBic4YwtaCKxmCnpin6DpfL0blakSqZijmBRM2WCRgzDXt8NjDg9mCU8nCcTEvBFOquD2CBcEIEgcw2WZeFArQZhLMsRxDDge1IHiNg2EUxsmqbpurUhI2jMrB2HUd4PHKcICQBYCDiail2FfAiAsvRJOEURxDkk7FLUPtVNIS8WLiMcuw4cM5r7Mrr2onbPlQKgKqqmrd3qkVGogFxV3oYh2s6laermBBMCYLAomswbhtG8bpqxybZvmkyB0sZbuqDUgJ2nI8Tz2ld50h4JWBWSrqtq4G8wpgqOF4TADpIPACRKE7pPO6RLqUa6VPSspws8YUHLSkpXPyJLPOyFI5fiLyKiyjyRkluLKjGNXmj1yLxkV7L0oN6K/JSzK3KV2Z8yIzBeeHIqXpKhbOBlTBj2WPYRMvSJ/qZoGGqalrDuhjFwZpoP1g6mYurHN30ZAMaJuxrG3tKgmhxHYnetIUtJA0EUNGbDQAS4DZa2bLxQ2rTtBo2D38Y52Gi2erxW/7duC7mMyknsSQgA
### Expected behavior
Both static asserts from the godbolt link should compile correctly, presence of dynamic_extent should not affect the ability to query statically known extents at compile time.
### Reproduction link
https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIAruiakl9ZATwDKjdAGFUtEywYgATKUcAZPAZMADl3ACNMYhAADlIAB1QFQjsGFzcPPQSk2wEAoNCWCKiuS0xrHIYhAiZiAjT3Tx8rTBsUqpqCPJDwyJjLatr6jJKFAc7A7sLergBKS1QTYmR2DgBSLwBmQOQ3LABqVY2nU3MAelH0U5Z0BTjDQ%2BxVjQBBJ%2BfAgj2WJkCIGYOAOwAITeezBexOTBAIAu0MwqgIjAICkOTg%2BpD2JQhZihMII6Gh6AAnswWHhkAB9eGIwQYjYPPbwiBeGaHEEvcF7UZMWyUpgKJS1CDwgB01KREA0/0OABFZZjWRt2c9OZDobCQOLBCijujMRifHt6RtsIzVF42aDwdzeRT%2BYKCMLzWKERKpQcNnLPQrLS9VgCZRw5rROABWXieDhaUioThOOQylVOdYgrxArkLJaYA6bHikAiaINzADWIFDAE4ReWAGxecteaLVjYA2sAyQbUP6TiSCOFmOcXgKEAafOFuZwWAwRAoVAsOJ0SLkShoOcLqIMABuyGQXC8XhMJSwG/JmAAanhMAB3ADycUYfZotERxCHEDCfbCgRqRI/X%2BIROvMJtBaAtuF4Fc2EEa8GFoH8o14LAwhMYAnDEWghzA0gsG%2BIxxHgrC8GIEC8A3TAMOjeEWhMRE%2Bw%2BMo%2B1oPAwmIb8XCwPsCGIPAWE4Hg5ioAxgAUc8r1ve9MP4QQRDEdgpBkQRFBUdR8N0EoDCMFAcX0Jih0gOZUDiCoMN4VBSOILisF0v5SnKFIHAYZxXAaPR/AmAoikyRJkgEIZPBKLJvIYLp3OmGziIEdpBic4YwtaCKxmCnpin6DpfL0blakSqZijmBRM2WCRgzDXt8NjDg9mCU8nCcTEvBFOquD2CBcEIEgcw2WZeFArQZhLMsRxDDge1IHiNg2EUxsmqbpurUhI2jMrB2HUd4PHKcICQBYCDiail2FfAiAsvRJOEURxDkk7FLUPtVNIS8WLiMcuw4cM5r7Mrr2onbPlQKgKqqmrd3qkVGogFxV3oYh2s6laermBBMCYLAomswbhtG8bpqxybZvmkyB0sZbuqDUgJ2nI8Tz2ld50h4JWBWSrqtq4G8wpgqOF4TADpIPACRKE7pPO6RLqUa6VPSspws8YUHLSkpXPyJLPOyFI5fiLyKiyjyRkluLKjGNXmj1yLxkV7L0oN6K/JSzK3KV2Z8yIzBeeHIqXpKhbOBlTBj2WPYRMvSJ/qZoGGqalrDuhjFwZpoP1g6mYurHN30ZAMaJuxrG3tKgmhxHYnetIUtJA0EUNGbDQAS4DZa2bLxQ2rTtBo2D38Y52Gi2erxW/7duC7mMyknsSQgA
### Operating System
N/A
### nvidia-smi output
N/A
### NVCC version
12.2.1
Contributor guide
Assessment
This issue has not been assessed yet.