Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
October 22, 2013 Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Trying to use mixin, i get an unsupported char error. protected template GenMessageGetId(uint id) { immutable string GenMessageGetId = "public immutable(int) getId() const { \n" ~ id ~ "; \n}"; } public mixin template Packet(uint id, T...) { ... private static string buildPacket() { ... return GenMessageGetId!(id); } mixin (buildPacket()); } class MyPacket : Message { mixin Packet!(3, ...); -> Error: unsupported char 0x03 } GenMessageGetId is generating "unsupported char 0x03". |
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Agustin | On Tuesday, 22 October 2013 at 15:01:20 UTC, Agustin wrote:
> Trying to use mixin, i get an unsupported char error.
>
> protected template GenMessageGetId(uint id) {
> immutable string GenMessageGetId
> = "public immutable(int) getId() const { \n" ~ id ~ "; \n}";
> }
>
> public mixin template Packet(uint id, T...) {
> ...
>
> private static string buildPacket() {
> ...
>
> return GenMessageGetId!(id);
> }
>
> mixin (buildPacket());
> }
>
> class MyPacket : Message {
> mixin Packet!(3, ...); -> Error: unsupported char 0x03
> }
>
> GenMessageGetId is generating "unsupported char 0x03".
protected template GenMessageGetId(uint id) {
immutable string GenMessageGetId
= "public immutable(int) getId() const { \nreturn" ~ id ~ ";
\n}";
}
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Agustin | On Tuesday, 22 October 2013 at 15:01:20 UTC, Agustin wrote:
> = "public immutable(int) getId() const { \n" ~ id ~ "; \n}";
You'll probably want to convert id to a string there
import std.conv;
"public immutable(int) getId() const { \n" ~ to!string(id) ~ ";
and also put in return for that function:
"public immutable(int) getId() const { \n return " ~ to!string(id) ~ ";
and it should compile. What was happening before is string ~ int implicitly converts the int to a char, and cast(char)(3) isn't a printable character, and isn't allowed in D source code.
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Agustin | On Tuesday, 22 October 2013 at 15:01:20 UTC, Agustin wrote:
> Trying to use mixin, i get an unsupported char error.
>
> protected template GenMessageGetId(uint id) {
> immutable string GenMessageGetId
> = "public immutable(int) getId() const { \n" ~ id ~ "; \n}";
> }
>
> public mixin template Packet(uint id, T...) {
> ...
>
> private static string buildPacket() {
> ...
>
> return GenMessageGetId!(id);
> }
>
> mixin (buildPacket());
> }
>
> class MyPacket : Message {
> mixin Packet!(3, ...); -> Error: unsupported char 0x03
> }
>
> GenMessageGetId is generating "unsupported char 0x03".
do you perhaps want to!string(id) ???
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Tuesday, 22 October 2013 at 15:05:16 UTC, Adam D. Ruppe wrote:
> On Tuesday, 22 October 2013 at 15:01:20 UTC, Agustin wrote:
>> = "public immutable(int) getId() const { \n" ~ id ~ "; \n}";
>
> You'll probably want to convert id to a string there
>
> import std.conv;
>
> "public immutable(int) getId() const { \n" ~ to!string(id) ~ ";
>
> and also put in return for that function:
> "public immutable(int) getId() const { \n return " ~ to!string(id) ~ ";
>
>
> and it should compile. What was happening before is string ~ int implicitly converts the int to a char, and cast(char)(3) isn't a printable character, and isn't allowed in D source code.
Works great, thanks! :)
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | John Colvin:
> do you perhaps want to!string(id) ???
Or:
id.text
Bye,
bearophile
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Tuesday, 22 October 2013 at 15:16:17 UTC, bearophile wrote:
> John Colvin:
>
>> do you perhaps want to!string(id) ???
>
> Or:
>
> id.text
>
> Bye,
> bearophile
I like id.text better than to!string, thanks
|
October 22, 2013 Re: Error: unsupported char 0x03 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Agustin | On 10/22/2013 08:56 AM, Agustin wrote: > On Tuesday, 22 October 2013 at 15:16:17 UTC, bearophile wrote: >> John Colvin: >> >>> do you perhaps want to!string(id) ??? >> >> Or: >> >> id.text >> >> Bye, >> bearophile > > > I like id.text better than to!string, thanks Me too but the following looks nice too: id.to!string Ali |
Copyright © 1999-2021 by the D Language Foundation